堆里面分为新生代和老生代(java8取消了永久代,采用了Metaspace),新生代包含Eden+Survivor区,survivor区里面分为from和to区,内存回收时,如果用的是复制算法,从from复制到to,当经过一次或者多次GC之后,存活下来的对象会被移动到老年区,当JVM内存不够用的时候,会触发Full GC,清理JVM老年区 当新生区满了之后会触发YGC,先把存活的对象放到其中一个Survice区,然后进行垃圾清理.因为如果仅仅清理需要删除的对象,这样会导致内存碎片,因此一般会把E