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

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

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

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

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

相关推荐
code小毛孩15 分钟前
如何简单的并且又能大幅度降低任务队列的锁粒度、提高吞吐量?
java·jvm·数据库
用手手打人5 小时前
JVM(九)-- 类的生命周期
jvm
深海呐5 小时前
Android 编译速度优化:JVM堆内存扩充
android·jvm·jvm内存扩充·android 加快编译速度
哈基米喜欢哈哈哈5 小时前
低版本的JVM遇到高版本的class字节码是否会报错
java·jvm
用手手打人5 小时前
JVM(八)-- Class文件
jvm
235165 小时前
【并发编程】详解volatile
java·开发语言·jvm·分布式·后端·并发编程·原理
找不到、了15 小时前
JVM的即时编译JIT的介绍
java·jvm
Javatutouhouduan16 小时前
Java程序员如何深入学习JVM底层原理?
java·jvm·java面试·后端开发·java架构师·java程序员·互联网大厂
m0_4750645016 小时前
jvm中程序计数器
jvm
ANYOLY17 小时前
JVM 线上调优与排查指南
jvm·测试工具