什么时候在新生代 什么时候在老年代
时间: 2023-11-03 12:06:13 浏览: 95
Java新生代老年代的划分及回收算法
在Java虚拟机中,对象的存储是在堆内存中进行的,堆内存又被分为新生代和老年代。新生代是指被划分为Eden区和Survivor区的内存,一般存放新创建的对象;老年代是指存活时间较长的对象所存储的内存区域。
对象在创建时会被分配到新生代的Eden区,如果Eden区没有足够的空间,则会触发一次Minor GC,将Eden区和Survivor区中无用的对象进行清理,同时将存活的对象移动到Survivor区。当Survivor区满时,也会触发一次Minor GC,将Survivor区中的存活对象移动到老年代。当老年代空间不足时,就会触发一次Full GC,对整个堆内存进行清理。
因此,一般情况下,新创建的对象都会在新生代中进行存储,存活时间较短的对象会被清理掉,存活时间较长的对象则会逐渐被移动到老年代中。具体对象何时进入老年代,是由JVM的垃圾回收机制根据对象年龄和存活时间等因素来决定的。
阅读全文