我们一般认为方法区保存类型信息,常量,静态变量,即时编译器编译后的代码缓存 JDK1.6中静态变量保存在永久代中。 JDK1.7,逐渐“去永久代”化,字符串常量池和静态变量保存在堆中。 JDK1.8,去除永久代,转而由元空间实现方法区,元空间是非堆(non-heap),占用本地内存,类型信息、字段、方法、常量等保存在元空间,字符串常量池和静态变量依然保存在堆中。