2.垃圾回收概述
2.1.垃圾回收算法
2.1.1.垃圾回收算法-标记清除算法
2.1.2.垃圾回收算法–复制算法
2.1.3.垃圾回收算法–标记整理算法和分代收集算法
2.1.4.垃圾回收算法–Serial收集器详解
2.1.5.垃圾回收算法–Parnew收集器详解
2.1.6.垃圾回收算法–Parallel收集器详解
2.1.7.垃圾回收算法–CMS收集器详解
2.1.8.最牛的垃圾回收集器–g1收集器详解
2.垃圾回收概述
对象什么时候才能变成垃圾。
如何判定对象为垃圾对象。
关于垃圾回收的三个问题:
分代收集算法。
2.1.垃圾回收算法
2.1.1.垃圾回收算法-标记清除算法
问题:效率问题
2.1.2.垃圾回收算法–复制算法
新生代里面的三个区域的用途。
内存占比:
复制算法主要针对新生代的算法。针对老年代,效率很低。
2.1.3.垃圾回收算法–标记整理算法和分代收集算法
主要针对老年代的。
针对:频率不高,很少的情况。
让回收的,往右。
分代收集算法:根据新生代和老年代采用不同的算法。
2.1.4.垃圾回收算法–Serial收集器详解
2.1.5.垃圾回收算法–Parnew收集器详解
多个线程去收集垃圾
2.1.6.垃圾回收算法–Parallel收集器详解
上图中的下面两个参数为了”控制吞吐量”。
都是多线程收集器
为了降低中间的那段时间。
吞吐量:CPU用于运行用户代码的时间与CPU消耗的总时间壁纸。
2.1.7.垃圾回收算法–CMS收集器详解
标记清除算法
内存碎片。
性能非常低。
老年代收集器。
CMS是一个并发收集器
CMS的关注点也主要是
工作过程是:
初始标记:
引用计数法。
可达性分析法。
缺点:
1、占用大量的CPU资源
2.1.8.最牛的垃圾回收集器–g1收集器详解
优势:
1、并行与并发
2、分代收集
3、空间整合
4、可预测的停顿
步骤:
1、初始标记(并行的)
2、并发标记
3、最终标记
4、筛选回收
查找什么是Remember set
通过一张表的方式。