一般对象首次创建会被放置在新生代的eden区也就是伊甸园区,如果没有GC介入,则对象不会离开eden区,那么eden去的对象如何进入老年代的呢?正常来说,只有对象达到一定的大小,就会自动离开新生代进入老年代区,对象年龄是由对象经历数次GC决定的,在新生代每次GC之后如果对象没有被回收则年龄加1,虚拟机提供了一个参数来控制新生代对象的最大年龄,当超过这个年龄范围就会晋升老年代。
-XX:MaxTenuring Threshod,默认情况下为15.
总结:根据自己设置MaxTenuring Threshold参数,可以指定新生代对象经理多少次回收后进入老年代。
还有,大对象(新设古代een区无法装入时,也会直接进入老年代)。JVM里面有一个参数可以设置对象的大小超过在指定的大小之后,直接晋升为老年代
就是-XX:PretenureSizeThreshold
浙公网安备 33010602011771号