对象分为三种状态:年轻代、年老代和持久代
JVM将堆内存划分为:Eden、Survivor和Tenured/Old空间
1.年轻代
年轻代的对象首先放Eden区,生命周期短,很快被清理掉,对应的垃圾回收机制Minor GC。当年轻代区域空间被放满,就将对象存放在年老代区域。
2. 年老代
经历年轻代回收垃圾机制清理,任然生存下来的对象就存放年老代中。常常回收机制Major GC和Full GC.。来一次大扫除。
3.持久代
存放静态文件。
垃圾回收过程:
1. 新创建的对象,绝大多数存储在Eden中
2.当Eden区满了,不能创建新对象就会触发MinorGC对象清理,然后剩余对象复制到某个Survivor中,
3. 当Eden区再次满了,survivor存放触发major GC
4. 存放年老代,FULL GC