2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)

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.垃圾回收算法

2.1.1.垃圾回收算法-标记清除算法

问题:效率问题

2.1.2.垃圾回收算法–复制算法

2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)_第2张图片
新生代里面的三个区域的用途。

内存占比:
2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)_第3张图片
复制算法主要针对新生代的算法。针对老年代,效率很低。

2.1.3.垃圾回收算法–标记整理算法和分代收集算法

主要针对老年代的。
针对:频率不高,很少的情况。
2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)_第4张图片
让回收的,往右。
分代收集算法:根据新生代和老年代采用不同的算法。

2.1.4.垃圾回收算法–Serial收集器详解

2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)_第5张图片
2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)_第6张图片

2.1.5.垃圾回收算法–Parnew收集器详解

2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)_第7张图片
多个线程去收集垃圾

2.1.6.垃圾回收算法–Parallel收集器详解

2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)_第8张图片
上图中的下面两个参数为了”控制吞吐量”。
都是多线程收集器
2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)_第9张图片为了降低中间的那段时间。
吞吐量:CPU用于运行用户代码的时间与CPU消耗的总时间壁纸。
2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)_第10张图片

2.1.7.垃圾回收算法–CMS收集器详解

2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)_第11张图片
标记清除算法
内存碎片。
性能非常低。

老年代收集器。
CMS是一个并发收集器
CMS的关注点也主要是

工作过程是:
2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)_第12张图片

初始标记:
引用计数法。
可达性分析法。

缺点:
1、占用大量的CPU资源

2.1.8.最牛的垃圾回收集器–g1收集器详解

优势:
1、并行与并发
2、分代收集
3、空间整合
4、可预测的停顿
2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)_第13张图片
步骤:
1、初始标记(并行的)
2、并发标记
3、最终标记
4、筛选回收

查找什么是Remember set

通过一张表的方式。

你可能感兴趣的:(#,JVM)