https://blog.csdn.net/syilt/article/details/107525985
JVM堆中有新生代
、老年代
两块区域,因为使用分代回收
策略新生代还会划分为Eden
和两个Survivor
区,JVM堆大概是这样子:
JVM会给对象增加一个年龄(age)的计数器,对象每“熬过”一次GC,年龄就要+1,待对象到达设置的阈值(默认为15岁)就会被移移动到老年代,可通过-XX:MaxTenuringThreshold
调整这个阈值。
一次Minor GC
后,对象年龄就会+1,达到阈值的对象就移动到老年代,其他存活下来的对象会继续保留在新生代中。