一次发生在JVM新生代和老年代的GC过程简述
首先,我们假设程序当前的堆空间的情况如下:然后,程序在运行过程中,开始了我们的第一次YoungGC(年轻代GC),得到如下的图:通过这次的GC,我们的2、3、4对象都被回收了,只有1对象得到了保留,进入了S1(幸存者区),然后我们的程序在运行的过程中还会产生新的对象,这个时候可能是下面这样的:然后程序在不停的运行过程中,又开始GC了,这个时候就需要对Eden和S1做垃圾回收的工作了,结果可能是这样的:通过这个图,我们可以看出,Eden和S1两个区域的有效对象都进入了S2区域,