深入JVM 原理(三)JVM 垃圾收集

目录

深入JVM 原理(一)Java内存模型:https://blog.csdn.net/qq_39827935/article/details/81285009
深入JVM原理(二)Java对象访问模式:https://blog.csdn.net/qq_39827935/article/details/81285038
深入JVM原理(三)JVM 垃圾收集:https://blog.csdn.net/qq_39827935/article/details/81285059
深入JVM原理(四)JVM垃圾回收流程:https://blog.csdn.net/qq_39827935/article/details/81285084
深入JVM原理(五)Java堆内存调整参数(调优关键):https://blog.csdn.net/qq_39827935/article/details/81285099
深入JVM原理(六)年轻代:https://blog.csdn.net/qq_39827935/article/details/81285115
深入JVM原理(七)老年代、永久代和元空间:https://blog.csdn.net/qq_39827935/article/details/81285133
深入JVM原理(八)JVM垃圾回收策略:https://blog.csdn.net/qq_39827935/article/details/81285156
深入JVM原理(九)JVM垃圾回收策略参数配置:https://blog.csdn.net/qq_39827935/article/details/81285175
深入JVM原理(十)G1收集器:https://blog.csdn.net/qq_39827935/article/details/81285207
深入JVM原理(十一)Java引用类型:https://blog.csdn.net/qq_39827935/article/details/81285227

我们已经知道了java的执行流程和java对象的访问模式,现在开始进行垃圾处理了。

首先,Java中最大的特点在于其具备良好的垃圾收集特性,也就是说GC是java重最重要的保证,它能让再蠢的开发者也能写出合理的代码来。 
整个JVM中的GC处理机制:对不需要的对象进行标记,而后进行清除。

首先,我们来看一下JDK 1.8 之前的内存结构图(非常重要): 
这里写图片描述

然后,我们来看一下JDK 1.8 之后的内存结构图(非常重要): 
这里写图片描述

一定要记住在 JDK1.8 之后将最初的永久代内存空间取消了,以下为1.8之前的内存空间组成:

(取消永久代的目的:是为了将 HotSpot与JRockit 两个虚拟机标准联合成一个。) 
在整个的JVM堆内存之中实际上将内存分为三块: 
年轻代:新对象和没达到一定年龄的对象都在年轻代; 
老年代:被长时间使用的对象,老年代的内存空间比年轻代更大 
元空间:像一些方法中的操作临时对象等,直接使用物理内存; 
最初的永久代是需要在JVM堆内存里面进行划分;

猜你喜欢

转载自blog.csdn.net/qq_39827935/article/details/81285059