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

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

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

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

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

相关推荐
极客先躯28 分钟前
高级java每日一道面试题-2024年11月22日-JVM篇-说说堆和栈的区别?
java·jvm··
王佑辉2 小时前
【jvm】new对象的过程
jvm
王佑辉3 小时前
【jvm】对象的内存布局
jvm
王佑辉10 小时前
【jvm】从字节码角度看待对象创建流程
jvm
xmh-sxh-131410 小时前
jvm发展历程介绍
jvm
Ysjt | 深1 天前
C++多线程编程入门教程(优质版)
java·开发语言·jvm·c++
阿伟*rui1 天前
jvm入门
jvm
学点东西吧.1 天前
JVM(五、垃圾回收器)
jvm
请你打开电视看看1 天前
Jvm知识点
jvm
程序猿进阶1 天前
堆外内存泄露排查经历
java·jvm·后端·面试·性能优化·oom·内存泄露