JVM实战总结:第二版,史上最强图,图解:大厂面试题,Young GC和Full GC分别在什么情况下会发生?

重新绘制了一下进行Young GC 、Full GC 的条件及处理过程,直接看图: 

JVM实战总结:第二版,史上最强图,图解:大厂面试题,Young GC和Full GC分别在什么情况下会发生?_第1张图片

 

 

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

JVM实战总结:第二版,史上最强图,图解:大厂面试题,Young GC和Full GC分别在什么情况下会发生?_第2张图片

 

 

 看着图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实战高手》内容总结,版权问题,特此声明

 JVM实战总结:第二版,史上最强图,图解:大厂面试题,Young GC和Full GC分别在什么情况下会发生?_第3张图片

 

 

 JVM实战总结:第二版,史上最强图,图解:大厂面试题,Young GC和Full GC分别在什么情况下会发生?_第4张图片

 

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

你可能感兴趣的:(JVM实战总结:第二版,史上最强图,图解:大厂面试题,Young GC和Full GC分别在什么情况下会发生?)