史上最强图,图解:大厂面试题,Young GC和Full GC分别在什么情况下会发生?

 

在原文基础上重新绘制了一下进行Young GC 、Full GC 的条件及处理过程(原文链接 https://blog.csdn.net/dingshuo168/article/details/98790647

 

 

为了方便记忆,我把图逐步简化为,下列三幅图:

 

 

 看着图3,我来写出过程:

  1、左5型,绕过了空间担保(绕过紫色框),直接进行了Young GC。不用空间担保,意味着Young GC后,即使新生代所有的对象都存活,也都可以放入老年代,所以只会进行Young GC

  2、锚型,空间担保成功(跨越紫色框),先Young GC,后Old GC(也可能不进行)。空间担保成功,意味着Young GC后,大概率老年代空间够晋升对象用,不需要进行Old GC,那么先进行Young GC吧,Young GC过程中会有一部分对象晋升到老年代,这时候有两种情况:

  (情况1)、发现老年代空间不够,只能转而进行 Old GC ,然后接着YoungGC。

  (情况2)、老年代空间够,不用Old GC

  3、中5少横型,空间担保失败(分叉于紫色框),先Old GC ,后Young GC。空间担保失败,意味着Young GC后,大概率老年代空间不够晋升对象用,需要进行Old GC。那么先进行Old GC吧,Old GC完成后进行Young GC(大家别忘记为什么要进行Old GC,是为了更好的进行Young GC,免得先进行Young GC到一半才发现空间不够用,再来Old GC)

好了,我看着图3,把大概的流程写完了。大家仔细看最上面的详细流程图,相信最后也能想着图3 ,写出整个流程

本文是《从 0 开始带你成为JVM实战高手》内容总结,版权问题,特此声明

 

 

 

 

 

如果购买,成功后加QQ群找群主返现10元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java硕哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值