对象进入老年代的方式有哪些?
方式一:
在堆中分配的大对象直接挪到老年代。
方式二:
分代年龄达到设定值(默认是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) 编辑 收藏 举报