1、serial
只有一个垃圾回收线程,垃圾回收整个过程都需要STW,用于回收新生代
2、serialOld
只有一个垃圾回收线程,垃圾回收整个过程都需要STW,用于回收老年代
3、parallel(默认)
多线程垃圾回收器,用于回收新生代,垃圾回收过程需要STW
4、parallelOld(默认)
多线程垃圾回收器,用于回收老年代,整个垃圾回收过程需要STW
5、parNew
多线程垃圾回收器,用于回收新生代,整个垃圾回收过程需要STW,主要用于和CMS搭配使用
6、CMS
jdk1.4版本后引入的,使用mark-sweep
三色标记+incremental update
垃圾回收分四部
1)初始标记(STW)
2)并发标记
3)重新标记(STW)
4)并发清除
7、G1
三色标记+SATB(snapshot)
将内存分为1024块,分一块1M(可设置),
8、ZGC
颜色指针
9、Shenadoah
垃圾回收器与内存大小的关系
serial:几十M
parallel:百兆~几个G
CMS:20G
G1:几百G
ZGC:4T