总:三个分代理论造就了分代收集,收集器将java堆根据年龄(熬过垃圾收集的次数)分为
新生代,老年代。针对这些代有了三种回收类型:Minor GC,Major GC,Mixed GC,Full GC
三个假说:
- 弱分代假说:对象都是朝生夕灭
- 强分代假说:熬过多次垃圾收集的对象难死
- 跨代引用假说:对象间存在跨代引用,但是跨代引用少,因为一般他们是同生同灭。
在新生代上建立一个全局的数据结构(叫做记忆集),它将老年代划分为若干块,标识出哪一块存在跨代引用。当发生Minor GC时,只有这块会加入到GC Roots里进行扫描。
三种回收类型:
- 部分收集(Partial GC):
- 新生代收集(Minor GC/Young GC):目标是新生代
- 老年代收集(Major GC/Old GC):目标是老年代收集
- 混合收集(Mixed GC):目标是整个新生代和部分老年代
- 整堆收集(Full GC):目标是整个java堆和方法区