Loading...
墨滴

lht94

2021/07/16  阅读:38  主题:默认主题

GC老年代和年轻代

年轻代&老年代( Young Generation & Old Generation)

  • 年轻代:年轻代其实分为两部分,分别是1个Eden区和2个Survivor区(分别叫from和to),默认比例是8:1,一般情况下,新创建的对象都会被分配到Eden区,(除非一些特别大的对象会直接放到老年代),当Eden没有足够的空间的时候,就会触发jvm发起一次Minor GC,如果对象经过一次Minor GC还存活,并且又能被Survivor空间接受,那么将被移动到Survivor空间当中,对象在Survivor区中每熬过一次Minor GC,年龄就会增加一岁,当它的年龄增加到一定程度(15岁)时,就会被移到老年代中,当然晋升老年代的年龄是可以设置的。

  • 老年代:当年轻带随着不断地Minor GC ,from survivor中的对象会不断成长,当from survivor中的对象成长大15岁的时候,就会进入老年代,随着Minor GC的持续进行,老年代中对象也会持续增长,最终老年代的空间也会不够用,此时就会执行老年代的GC-->Major GC(Full GC)。Major GC使用的算法是标记清除算法或者标记-压缩算法。

lht94

2021/07/16  阅读:38  主题:默认主题

作者介绍

lht94