2021-01-03:java中,描述一下什么情况下,对象会从年轻代进入老年代?

2021-01-04 10:14:25 浏览数 (1)

福哥答案2021-01-03:

1.对象的年龄超过一定阀值,-XX:MaxTenuringThreshold 可以指定该阀值。

2.动态对象年龄判定,有的垃圾回收算法,比如 G1,并不要求 age 必须达到 15 才能晋升到老年代,它会使用一些动态的计算方法。

3.大小超出某个阀值的对象将直接在老年代上分配,值默认为 0,意思是全部首选 Eden 区进行分配,-XX:PretenureSizeThreshold 可以指定该阀值,部分收集器不支持。

4.分配担保,当 Survivor 空间不够的时候,则需要依赖其他内存(指老年代)进行分配担保,这个时候,对象也会直接在老年代上分配。


评论

0 人点赞