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

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

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

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

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

相关推荐
天空之城--6 小时前
Flutter Drift 完全指南:从原理到实战
jvm·flutter·oracle
xiaohua100913 小时前
JVM内存优化-jemalloc
java·jvm
Escalating_xu13 小时前
【mmap 进程间通信】从共享内存到跨进程唤醒:用互斥锁、条件变量控制多个进程
java·linux·开发语言·jvm
雪落漂泊14 小时前
C++智能指针
开发语言·jvm·c++
落魄大学生之流水线上谋生计14 小时前
JVM内存结构、垃圾回收算法与类加载机制详解
jvm·算法
wuminyu15 小时前
Kafka配置TLS/SSL加密传输时零拷贝失效分析
java·linux·c语言·jvm·c++
0+1111 天前
Linux --线程概念与控制
linux·运维·服务器·jvm
瀚高PG实验室2 天前
瀚高数据库V9.0.5数据脱敏完整配置步骤
jvm·数据库·postgresql·瀚高数据库
阿里云基础软件2 天前
一句话看透 JVM,SysOM 诊断 Skill 新增 Java 应用诊断能力
java·开发语言·jvm·人工智能·操作系统·sysom 诊断 skill
wuminyu2 天前
Kafka的写入延迟与磁盘IO抖动原理分析
java·linux·c语言·jvm·c++