GC的四大算法
1.复制算法
年轻代中使用的是Minor GC,这种GC算法采用的是复制算法(Copying)
JVM把年轻代分为了三部分:1个Eden区和2个幸存区(分别叫from和to)。一般情况下,新创建的对象都会被分配到Eden区(一些大对象特殊处理),这些对象经过第一次Minor GC后,如果仍然存活,将会被移到Survivor区。对象在Survivor区中每熬过一次Minor GC,年龄就会增加1岁,当它的年龄增加到一定程度时,就会被移动到年老代中。因为年轻代中的对象基本都是朝生夕死的(90%以上),所以在年轻代的垃圾回收算法使用的是复制算法,复制算法的基本思想就是将内存分为两块,每次只用其中一块,当这一块内存用完,就将还活着的对象复制到另外一块上面。复制算法不会产生内存碎片。
谁先清空,谁变成to区,GC的复制算法会一直重复这样的过程,直到“To”区被填满,“To”区被填满