对象进入老年代的方式有哪些?

方式一:

在堆中分配的大对象直接挪到老年代。

方式二:

分代年龄达到设定值(默认是15)

方式三:

对象动态年龄判断

当前放对象的Survivor区域里(其中一块区域,放对象的那块s区),一批对象的总大小大于这块Survivor区域内存大小的
50%(-XX:TargetSurvivorRatio可以指定),那么此时大于等于这批对象年龄最大值的对象,就可以直接进入老年代了,
例如Survivor区域里现在有一批对象,年龄1+年龄2+年龄n的多个年龄对象总和超过了Survivor区域的50%,此时就会
把年龄n(含)以上的对象都放入老年代。这个规则其实是希望那些可能是长期存活的对象,尽早进入老年代。对象动态年
龄判断机制一般是在minor gc之后触发的。

方法四:

 

posted on 2020-06-29 15:21  William_Dai  阅读(1201)  评论(0编辑  收藏  举报

导航