新生代的垃圾回收

在JVM中,新生代被分为3个部分,

  • Eden区
  • Survivor1区
  • Survivor2区

3个部分的内存占比为8:1:1

首先new的对象都会在Eden区,如果Eden区满了,则会触发GC,将存活的对象使用复制算法复制到一个Survivor区

然后就是一直循环往复。

复制算法的优点

  • 不会出现内存碎片,导致内存浪费

复制算法的缺点

  • 如果把整个新生代分为两部分的话,内存利用率太低了,因此新生代被分为了3个部分