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

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

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

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

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

相关推荐
这周也會开心21 小时前
Map集合的比较
java·开发语言·jvm
Jerry404_NotFound1 天前
工厂方法模式
java·开发语言·jvm·工厂方法模式
oioihoii1 天前
C++虚函数表与多重继承内存布局深度剖析
java·jvm·c++
wangchen_01 天前
深入理解 C/C++ 强制类型转换:从“暴力”到“优雅”
java·开发语言·jvm
banpu1 天前
JVM相关
jvm
鸽鸽程序猿2 天前
【JavaSE】简单理解JVM
java·jvm
小毛驴8502 天前
JDK主流版本及推荐版本
jvm
没有bug.的程序员2 天前
微服务网关:从“必选项”到“思考题”的深度剖析
java·开发语言·网络·jvm·微服务·云原生·架构
tgethe2 天前
==和equals的区别
java·开发语言·jvm