Minor GC/Young GC 什么时候触发?

当新对象被创建时,它会首先被分配在新生代的 Eden 区。如果 Eden 区没有足够的空间来容纳新对象,就会触发新生代垃圾收集(Young GC)来清理新生代。

在新生代垃圾收集中,首先会对 Eden 区进行标记,将所有存活的对象进行标记。然后,将这些存活的对象复制到新生代的另一个区域(通常是 Survivor 区)。同时,已经在上一次收集中存活的对象也会被复制到 Survivor 区。

经过多次垃圾收集后,仍然存活的对象会被晋升到老年代,也就是移动到老年代区域。当对象经过多次垃圾收集后仍然存活,就会被认为是"老"对象,被移动到老年代中。

通过这种方式,新生代的垃圾收集可以有效地回收新生代中的垃圾对象,并且只需要处理新生代的一小部分内存,提高了垃圾收集的效率。

标签: java, Java面试题, Java问题合集, Java编程, Java问题精选, Java常见问题