JVM运行时数据区——字符串常量池位置的调整

        在JDK6及之前,使用永久代来实现方法区,字符串常量池(StringTable)是在永久代(方法区)中的,但是方法区的回收效率不高,在Full GC时才会回收。

JVM运行时数据区——字符串常量池位置的调整_第1张图片

          在JDK7中,将字符串常量池转移到了堆中,分配在年轻代和老年代中。

JVM运行时数据区——字符串常量池位置的调整_第2张图片

        在JDK8中,为了融合HotSpot VM与JRockit VM而做出努力,因为JRcockit VM不需要永久代 ,所以移除了永久代,改为了元空间,在本地内存中。

JVM运行时数据区——字符串常量池位置的调整_第3张图片

注意:在JDK1.8中,字符串常量池独立于新生代和老年代,有一块独立的区域。 

        

你可能感兴趣的:(JVM,jvm)