java堆外内存泄漏排查 JVM堆内存中,为何有两个survivor区,一个不行吗?

JVM堆内存中,为何有两个survivor区,一个不行吗?年轻一代使用复制算法。每次执行小GC时,伊甸园区域中幸存的物体都会被复制到幸存区域,幸存的物体会被移到老年。如果只有一个幸存者区域,它将产生垃

JVM堆内存中,为何有两个survivor区,一个不行吗?

年轻一代使用复制算法。每次执行小GC时,伊甸园区域中幸存的物体都会被复制到幸存区域,幸存的物体会被移到老年。如果只有一个幸存者区域,它将产生垃圾碎片。

让我们看看只有一个s区域的情况

如果有两个区域,一个是S1,一个是S2,则将S1和Eden区域的幸存对象复制到S2,下次触发时将S2和Eden区域的幸存对象复制到S1