3垃圾回收器
三种垃圾回收器
3.1 串行
3.2 吞吐量优先
ratio默认值为99 较难达到,一般设置为19
3.3 响应时间优先
3.4 G1
jdk1.8不是默认开启的,需要用-XX:+UseG1GC来启用
3.4.1 G1垃圾回收阶段
3.4.2 Young collection
伊甸园满后,会触发,然后伊甸园的幸存对象放到幸存区
伊甸园——》幸存区——》老年区
3.4.3 Young Collection + CM
3.4.4 Mixed Colletion
3.4.5 Full GC
G1和CMS都是并发回收失败,(垃圾回收的速度慢于垃圾产生的速度时),才会触发串行的Full GC
3.4.6 跨代引用
对引用了新生代中的对象的老年代的的GC ROOT进行扫描(脏卡),减少对GC Root的扫描时间
3.4.7 Remark
加了写屏障技术,在白色的对象的引用关系在并发标记时被修改后,会变成灰色加入一个队列,然后在重新标记阶段,从队列中取出,重新标记这个对象(黑色or白色),之后会进行统一的清理。
3.4.8 JDK 8u20 字符串去重
3.4.9 JDK 8u40并发标记类卸载
3.4.10 JDK 8u60回收巨型对象
在无卡表引用时,新生代的minorGC就回收掉