新生代和老年代垃圾收集器
1. G1收集器-标记整理算法
- JDK1.7 后全新的回收器,用于取代CMS收集器。
- G1收集器的优势
- 独特的分代垃圾回收器,分代GC:分代收集器,同时兼顾年轻代和老年代。
- 使用分区算法,不要求Eden,年轻代或年老代的空间连续
- 并行期:回收期间,可由多个线程同时工作,利用多核cpu
- 空间整理:回收过程中,会进行适当对象移动。
- 可预见性,G1可选取部分区域进行回收,可以缩小回收范围,减少全局停顿。
G1收集器的阶段分为以下几个步骤
- 初始标记(标记了从GC Root开始直接可达的对象)
- 并发标记(从GC Roots开始对堆中对象进行可达性分析,找出存活对象)
- 最终标记(标记了那些在并发标记阶段发生变化的对象,将被回收)
- 筛选回收(首先对各个Regin的回收价值和成本进行排序,根据用户所期待的GC停顿时间指定回收计划,回收一部分区域)