主要是通过吞吐量,暂停时间和内存占用三大指标。
串行处理器:Serial,Serial Old
并行回收器:ParNew,Parallel Scavenge,Parallel Old
并发回收器:CMS,G1
新生代收集器:Serial,ParNew,Parallel Scavenge
老年代收集器:Serial Old,Parallel Old,CMS
整堆收集器:G1
Serial是一种串行运行的,执行新生代收集的收集器。采用的是复制算法。
Serail Old收集器是串行运行的,运行老年代收集的收集器。采用的是标记-整理算法。

当Serial/Serial Old收集器运行时,其他用户线程必须要暂停,用户线程和GC线程无法并发运行。
ParNew是Serial收集器的多线程版本,采用并行回收的方式执行新生代的内存回收。

Parallel Old是基于并行回收的处理老年代垃圾的垃圾回收器,采用的是标记整理算法。

Parallel Scavenge回收器采用的是并行回收,复制算法的机制,被称之为吞吐量优先的垃圾回收器。
高吞吐量可以高效率的利用CPU时间,尽快完成程序运算任务,主要适合在后台运算而不太需要交互的任务。

Java8中,默认是此收集器。
是第一款真正意义上的并发收集器,第一次实现了让GC线程和用户线程同时工作。它采用的是标记清除算法,负责老年代的GC。

运行期间主要分为四个阶段:
优点:1.并发收集 2. 低延迟
缺点:1.由于采用标记清除算法,所以会产生内存碎片 2.低吞吐量 3.无法处理并发标记阶段新产生的垃圾对象,无法及时回收这些垃圾对象
G1是一个并行回收器,将堆内存分割为很多区域Region,跟踪每一个Region里面堆积的垃圾的价值大小(根据回收所获得空间大小以及回收所需时间的经验值),在后台维护一个优先列表,根据所允许的收集时间,优先回收价值最大的Region。
优点:1并发运行 2.分代收集

