垃圾回收器主要分为这几种:Serial、ParNew、Parallel Savenge、Serial old、Parallel Old、CMS、G1
Serial:单线程的收集器,在回收的时候,必须停止所有线程,采用的是复制算法,对于一些实时性要求不高的应用还是可以接受的
ParNew:Serial的多线程版本,也是复制算法,也需要stw,
Parallel Svaenge:新生代收集器。和ParNew最大的区别就是,可以自定义参数,实现回收时间停顿和吞吐量的最优解
Serial old:Serial的老年代版本,标记整理算法那,单线程
Paralled old:新生代收集器老年版使用多线程,标记整理算法
CMS:为了实现最少停顿时间的收集器,标记清除算法,运作过程:初始标记,并发标记,重新标记,并发清除,收集完之后会产生大量碎片空间
G1:标记整理算法实现,运作流程:初始标记,并发标记,最终标记,筛选回收。不会产生碎片空间,精准的控制。G1将空间分为很多个相同的区域,G1跟踪每个区域的垃圾大小,在后台维护一个优先队列表,没吃在允许的时间内,回收价值最大的区域,在有效地时间内获取尽可能大的价值