- Serial收集器
- 是一个单线程的收集器
- 新生代采用复制算法,Stop-the-world
- 老年代采用标记整理算法,Stop-the-world
- Client模式下默认的新生代收集器
- ParNew收集器
- 是一个多线程的收集器
- 新生代采用复制算法,Stop-the-world
- 老年代采用标记整理算法,Stop-the-world
- Server模式下首选的新生代收集器
- 除了Serial收集器之外,只有它能和CMS收集器配合工作
- Parallel Scavenge收集器
- 是一个新生代收集器,采用复制算法
- 它的关注点与其它收集器不同,其它收集器的关注点是尽可能缩短垃圾收集时用户线程的停顿时间,而Parallel Scavenge收集器目的是达到一个可控制的吞吐量。
- 停顿时间和吞吐量不可能同时调优
- CMS收集器
- 是一种以获取最短回收停顿时间为目标的收集器
- 采用标记清除算法
- 是一个老年代收集器
- 并发收集、低停顿
- 步骤:
(1) 初始标记:仅仅是标记一个GC Roots能直接关联到的对象,速度很快,Stop the world
(2) 并发标记:进行GC Roots Tracing的过程,Stop the world
(3) 重新标记:为了修正并发标记期间因用户程序继续运作而导致标记产生变动的那一部分对象的标记记录,这个阶段的停顿时间一般会比初始标记阶段稍长一些,但远比并发标记时间短
(4) 并发清除
- G1收集器
- 是当今收集器发展的最前沿成果之一
- 对垃圾回收进行了划分优先级的操作,这种有优先级的区域回收方法保证了它的高效率
- 最大的优点,结合了空间整合,不会产生大量的碎片,也降低了进行GC的频率
- 让使用者明确指定了停顿时间