Java垃圾收集器:
垃圾收集器之间的连线表示收集器可以相互协作,收集器所在的区域表示新生代收集器还是老生代收集器。
Serial收集器:
1.单线程收集器
2.进行垃圾收集时,必须暂停其他所有线程,知道垃圾收集完成。
3.简单高效
ParNew收集器:
1.Serial收集器的多线程版本,回收策略、内存分配、参数设置都相同
2.收集效果并不比Serial收集器好
Parallel Scavenge收集器:
1.并行的多线程收集器
2.目标是达到一个可控制的吞吐量,吞吐量=运行代码时间/(运行代码时间+垃圾收集时间)
Serial Old收集器:
1.Serial收集器的老年代版本
2.单线程收集器
Parallel Old收集器:
1.Parallel Scavenge收集器的老版本、使用多线程和标记-整理算法
2.吞吐量优先收集器
CMS收集器:
1.获取最短停顿时间的垃圾收集器
2.标记清除算法
3.过程步骤为:初始标记、并发标记、重新标记、并发清除
4.缺点:CMS收集器对CPU资源非常敏感、CMS收集器无法处理浮动垃圾、产生大量内存碎片
G1收集器:
1.面向服务端应用的垃圾收集器、标记整理算法
2.特点:并发与并行、分代收集、空间整合、可预测停顿
3.步骤:初始标记、并发标记、最终标记、筛选回收
理解GC日志: