在Java虚拟机中,对象通常在新生代(Young Generation)中被分配内存,而年轻代又分为三个部分:Eden区、Survivor区1(S0)和Survivor区2(S1)。大部分对象在新生代中经历了多次垃圾回收后仍然存活,它们会被移动到老年代(Old Generation)。这个过程通常称为对象的年龄晋升。
下面是对象从年轻代晋升到老年代的基本过程:
-XX:MaxTenuringThreshold
指定,默认为15,对象将被晋升到老年代。这个过程中,对象的晋升到老年代是逐步的,经过多次的Minor GC,只有经过一定次数的存活判定后,对象才会被晋升到老年代。这种策略称为分代垃圾回收,通过将对象划分为不同的代(年轻代和老年代),可以更有效地进行垃圾回收,提高垃圾回收的效率。这也是Java虚拟机采用的一种经典的垃圾回收策略。
Proudly powered by WordPress