一页背完四大LTS版本内存核心差异
📌 核心结论(开口先答)
四个LTS版本的JVM运行时数据区逻辑划分完全一致,均为「程序计数器、虚拟机栈、本地方法栈、堆、元空间」5块;
均已移除永久代,用元空间(堆外本地内存)实现方法区。
所有版本差异都集中在底层实现层面,没有新增或删除任何标准内存区域。
经典基线版
过渡稳定版
生产主流版
新一代LTS
Q1:Java8到Java21新增了内存区域吗?
没有。五大运行时数据区结构从未改变,变化只在GC算法、元空间实现、栈存储方式等底层实现。
Q2:永久代哪个版本被移除?
Java 8就彻底移除永久代,后续所有版本均使用元空间实现方法区。
Q3:各版本默认GC分别是什么?
Java8默认Parallel GC; Java11 / 17 / 21默认均为G1 GC。
Q4:ZGC哪个版本正式生产可用?
Java11实验性引入,Java17(LTS)成为首个支持正式版ZGC的长期支持版本。
Q5:虚拟线程是新的内存区域吗?
不是。虚拟线程依然使用虚拟机栈,只是栈从固定预分配改成按需分段分配,没有新增任何内存区域。
JVM 面试速记 · 漫画版 | 一页搞定四大LTS内存差异