在下面四种情况下,对象会从年轻代进入老年代。
1、如果对象够老,会通过提升(Promotion)进入老年代,这一般是根据对象的年龄进行判断的。
2、动态对象年龄判定。有的垃圾回收算法,比如G1,并不要求age必须达到15才能晋升到老年代,它会使用一些动态的计算方法。
3、分配担保。当Survivor空间不够的时候,就需要依赖其他内存(指老年代)进行分配担保。这个时候,对象也会直接在老年代上分配。
4、超出某个大小的对象将直接在老年代分配。不过这个值默认为0,意思是全部首选Eden区进行分配。
Was this helpful?
0 / 0