文章目录
章节概览
完整版的内容请点击这里
完整版的内容请点击这里
完整版的内容请点击这里
本章节分为 5 个部分:① 对象存活判定算法,② 垃圾收集算法,③ HotSpot 算法实现,④ 垃圾收集器概述,⑤ 内存分配及回收策略。
第 3 章节思维导图(更新于2019年4月7日)
笔记
1. HotSpot 的算法实现 => 枚举根节点 => 采用 准确式 GC
2. HotSpot 的算法实现 => 枚举根节点 => 存在 GC 停顿
即使是在号称(几乎)不会发生停顿的 CMS
收集器中,枚举根节点时也是有必要停顿的。
3. HotSpot 的算法实现 => 枚举根节点 => 利用 OopMap
的数据结构可以得知哪个地方存放着对象引用
4. Serial / Serial Old 收集器
Serial 是新生代的收集器(下图左),Serial Old 是老年代的收集器(下图右)。
5. Parnew / Serial Old 收集器
ParNew 是新生代的收集器(下图左),Serial Old 是老年代的收集器(下图右)。
6. Parallel Scavenge / Parallel Old 收集器
7. CMS 收集器
8. G1 收集器
9. 若 Eden 的空间不足会触发 Minor GC
新生代 GC(Minor GC):指发生在新生代的垃圾收集动作,因为 Java 对象大多数都具备朝生夕死的特性,所以 Minor GC 非常频繁,一般回收速度也较快。
Full GC:收集整个堆,包括新生代、老年代、永久代(在 JDK 1.8及以后,永久代被移除,换为metaspace 元空间)等所有部分的模式。