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

目录

深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169
深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979
深入JVM原理(三)JVM 垃圾收集:http://blog.csdn.net/qq_34707744/article/details/79281249
深入JVM原理(四)JVM垃圾回收流程:http://blog.csdn.net/qq_34707744/article/details/79281852
深入JVM原理(五)Java堆内存调整参数(调优关键):http://blog.csdn.net/qq_34707744/article/details/79287403
深入JVM原理(六)年轻代:http://blog.csdn.net/qq_34707744/article/details/79287900
深入JVM原理(七)老年代、永久代和元空间:http://blog.csdn.net/qq_34707744/article/details/79288787
深入JVM原理(八)JVM垃圾回收策略:http://blog.csdn.net/qq_34707744/article/details/79289110
深入JVM原理(九)JVM垃圾回收策略参数配置:http://blog.csdn.net/qq_34707744/article/details/79289556
深入JVM原理(十)G1收集器:http://blog.csdn.net/qq_34707744/article/details/79290595
深入JVM原理(十一)Java引用类型:http://blog.csdn.net/qq_34707744/article/details/79291451

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

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

首先,我们来看一下JDK 1.8 之前的内存结构图(非常重要):
深入JVM 原理(三)JVM 垃圾收集_第1张图片

然后,我们来看一下JDK 1.8 之后的内存结构图(非常重要):
深入JVM 原理(三)JVM 垃圾收集_第2张图片

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

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


未完待续

你可能感兴趣的:(java,系统架构)