【发布时间】:2018-10-14 06:00:20
【问题描述】:
在 Java 8 之前,我们有 5 个主要的运行时数据区:
- 方法区
- 堆
- JVM 堆栈
- PC 寄存器
- 本机方法堆栈
在 Java 8 中,没有 Perm Gen,这意味着没有更多 “java.lang.OutOfMemoryError: PermGen”
这很好,但我也读过
方法区是 Perm Gen 中空间的一部分
但我似乎找不到任何明确表示方法区域在 Java 8 中不再存在的内容。
所以是 Perm Gen 连同 Method 区域被删除或只有 Perm Gen 得到 已删除,并且方法区域仍然存在于老年代。
请附上您可能看到的与 Java 8 内存模型相关的任何好的源材料
【问题讨论】:
-
至少有一个Method Area in the spec。
-
我删除了 [memory-model] 标签,因为内存模型描述了线程与共享内存的交互,这与内存布局不同。
标签: java-8 jvm jvm-hotspot memory-layout