Java技术专题之JVM逻辑内存回收机制研究图解版

时间:2021-10-12 10:00:22

一、引言

  JVM虚拟机内存回收机曾迷惑了不少人,文本从JVM实现机制的角度揭示JVM内存回收的原理和机制。

一、Java平台逻辑架构

Java技术专题之JVM逻辑内存回收机制研究图解版

二、JVM物理结构

Java技术专题之JVM逻辑内存回收机制研究图解版

通过从JVM物理结构图我们可以看到:

1.JVM两个子系统:类加载子系统和执行引擎子系统;

2.JVM两个组件:本地接口方法组件和内存空间组件。

2.JVM内存空间分为:Java堆,Java栈、方法区和本地方法区

关键词:我们经常讨论的JVM内存回收机制就是指Java堆内存回收机制。

四、JVM内存组成结构

Java技术专题之JVM逻辑内存回收机制研究图解版

上图所示四部分即为JVM内存组成结构。

五、Java堆内存结构

Java技术专题之JVM逻辑内存回收机制研究图解版

JVM堆内存分为三部分

(1)Yong

(2)Tenured

(3)Pern

内存申请过程,按照Y-T进行溢出拷贝。通常我们说的JVM内存回收总是在指堆内存回收,确实只有堆中的内容是动态申请分配的,所以以上对象的年轻代和年老代都是指的JVM的Heap空间,而持久代则是之前提到的MethodArea,不属于Heap。

六、意见和建议

(1)对象清理:无用对象和中间对象手动设置为null,执行内存回收;

(2)对象池:使用对象池实现内存空间的复用;

(3)JVM调优:通过配置JVM的配置参数控制JVM垃圾回收。

七、遗留问题

(1)JVM内存回收的触发机制是什么?

(2)JVM内存回收真的是安全的吗?

(3)JVM会出现内存泄露吗?

学习中,如果你有答案告诉我把!