- 跨代引用(新生代被老年代引用),扫记忆集,卡表解决
- G1:将堆划分为相等的独立区域Region(默认分2048个,可参数设置个数),主要采用复制到相邻区域,无碎片
- Region种类:Eden、Surviver、Old、Humongous
- 大对象【超过Region大小的50%】直接进入humongous【多个Region组成】中
- G1回收步骤:初始标记【STW】——并发标记——重新标记【STW】——筛选回收【STW】
- G1的STW可控制(JVM参数设置时间),到达时间极限,停止回收,下次再来。后台有优先表,根据回收效益比回收(存活率)
- G1收集:YongGC【回收时间接近最大STW时间】、MixedGC【老年代占有率达到设定值触发】、FullGC【STW,用单线程回收】
- 垃圾回收器的选择:4G以下Parallel、4-8G用CMS、8G以上用G1、几百G以上用ZGC
- ZGC收集器【JDK11新加特性】步骤:并发标记——并发预分配——并发重分配