前面在Java垃圾收集算法中讲过垃圾收集算法中的分代收集器,今天看了一个视频发现里面将的也很不错,所以决定再总结一下。
我们知道,在分代收集算法中堆空间被分为新生代和老年代。因为新生代中对象的存活率比较低,所以一般采用复制算法,老年代的存活率一般比较高,一般使用”标记-清理”或者”标记-整理”算法进行回收。
上面的这个图已经很清楚的将堆的分区展现出来了。
下面我们来看看具体的算法过程。
新创建的对象一般放在新生代的Enden区,如下图所示。
上面对象中,绿色代表的是"存活对象",灰色的代表的是"待回收对象"。当Enden中被使用完的时候,就会发生新生代GC,也就是Minor GC,如下图。