JAVA 方法区与堆 java7前,java7,java8各不相同
三种情况:java7之前,方法区位于永久代(PermGen),永久代和堆相互隔离,永久代的大小在启动JVM时可以设置一个固定值,不可变;java7中,存储在永久代的部分数据就已经转移到Java Heap或者Native memory。但永久代仍存在于JDK 1.
jvm中常量池在方法区?原来我错了这么久
先说结论:Jdk1.6及之前: 有永久代, 常量池1.6在方法区Jdk1.7: 有永久代,但已经逐步“去永久代”,常量池1.7在堆Jdk1.8及之后: 无永久代,常量池1.8在元空间。