1.弱分代假说:绝大多数对象都是朝生夕灭的。
2.强分代假说:熬过越多次垃圾收集过程的对象就越难以消亡。
这两个分代假说共同奠定了多款常用垃圾收集器的一致设计原则:收集器应该将Java堆划分出不同的区域,然后将回收对象依据年龄(即对象熬过垃圾回过程的次数)分配到不同的区域之中存储。
3.跨代引用假说:跨代引用相对于同代引用来说仅占极少数。
依据这条假说,不应再为了少量的跨代引用去扫描整个老年代,也不必浪费空间专门记录每一个对象是否存在哪些跨代引用,只需在新生代上建立一个全局的数据结构(记忆集),这个结构把老年代分成若干小块,标识出老年代那一块内存会存在跨代引用。此后当发生Minor GC时,只有包含了跨代引用的小块内存里的对象才会被加入到GC Roots进行扫描。