这篇文章写得很好,记录一下https://cloud.tencent.com/developer/article/1499750
G1实操:http://www.360doc.com/content/18/1225/12/60672321_804323456.shtml
确定是不是垃圾的算法:引用计数发、根可达算法
回收垃圾的算法:copy,标记清除发,标记压缩法
Java8默认的GC:FGC是STW的并行回收,但当内存堆空间过大的时候,FGC时间长,无法忍受
parnew+CMS:FGC是非STW的并行回收,但三色算法标记会漏标
G1:逻辑分区,实则是把堆空间分为1-32M的小块,每个小块会记录RSet:即本块的对象被其它块对象的引用,不用扫描整个内存,从而大大提高识别垃圾的效率。另外,GC时只用copy算法,而且不用整理,大大提高回收的效率。