Java中,静态成员的存储位置
JDK1.8以前
在JDK1.8以前,静态成员存储在方法区(永久代)中,此时方法区的实现叫做永久代
JDK1.8以后
在JDK1.8以后,永久代被移除,此时方法区的实现更改为元空间,但由于元空间主要用于存储字节码文件,因此静态成员的存储位置从方法区更改到了堆内存中
Java中,常量池的存储位置
JDK1.6及以前
在JDK1.6及以前,常量池存储在方法区(永久代)中
JDK1.7
在JDK1.7中,方法区被整合到堆内存中,常量池存储在堆内存中
JDK1.8以后
在JDK1.8后,方法区从堆内存中独立出来,常量池存储在方法区中(但此时永久代被移除,方法区的实现更改为元空间)