G1和CMS区别
参考java虚拟机P84页
CMS 回收器执行步骤
1、初始标记:GC roots 可以理解为对象指向的标记
2、并发标记: GC roots Tracing 可以理解为 通过初始标记找到了要删除的对象 也就是堆中的指向对象
3、重新标记: 可以理解为重新执行了一遍 初始标记 和 并行标记 产生标记记录
4、删除标记:标记删除发进行并发删除
优点:并行执行,低停顿
缺点:
1、不停顿耗线程,耗内存,整体效率低
2、标记清除法会产生垃圾碎片 容易FGC
3、会产生浮动垃圾容易FGC