JVM面试题

JVM 内存布局

JVM面试题_第1张图片
或者
JVM面试题_第2张图片

堆的默认空间分配

JVM面试题_第3张图片

新对象内存分配流程

JVM面试题_第4张图片

Metaspace 元空间

在 HotSpot JVM 中,永久代( ≈ 方法区)中用于存放类和方法的元数据以及常量池,比如 Class 和 Method。每当一个类初次被加载的时候,它的元数据都会放到永久代中。

永久代是有大小限制的,因此如果加载的类太多,很有可能导致永久代内存溢出,即万恶的 java.lang.OutOfMemoryError: PermGen,为此我们不得不对虚拟机做调优。

那么,Java 8 中 PermGen 为什么被移出 HotSpot JVM 了?(详见:JEP 122: Remove the Permanent Generation)

Java 虚拟机栈

JVM面试题_第5张图片

你可能感兴趣的:(Java)