已经明确的一点是 字符串常量池、静态变量 在jdk7时从方法区移入**Java堆**中,那么运行时常量池呢?
我看了jdk6/7/8三版jvm文档,对运行时常量池的描述都是方法区的一部分
jdk6
jdk7
jdk8
但是看知乎很多描述都说这是规范上的描述,实际在物理上运行时常量池已被移入Java堆中。如果是这样的话,请问哪里可以得证呢?
谢谢解答。
已经明确的一点是 字符串常量池、静态变量 在jdk7时从方法区移入**Java堆**中,那么运行时常量池呢?
我看了jdk6/7/8三版jvm文档,对运行时常量池的描述都是方法区的一部分
jdk6
jdk7
jdk8
但是看知乎很多描述都说这是规范上的描述,实际在物理上运行时常量池已被移入Java堆中。如果是这样的话,请问哪里可以得证呢?
谢谢解答。
实际情况推荐你用jstat和jmap查看分配情况。不同虚拟机在定义和分配上有些差异。但有一点,字符串常量的对象最新还是在堆创建,跟方法区在一起的只是一些基本类型数据包括引用地址