复制算法
解决效率问题
将内存分为大小相同两块
清除后复制还存活对象到另一块,全部清除已使用块<br>
适用于新生代
垃圾回收器
Serial收集器
单线程收集器了
只会使用一条垃圾收集线程去完成垃圾收 集工作,<br>它在进行垃圾收集工作的时候必须暂停其他所有的工作线程
ParNew收集器
Serial收集器的多线程版本
新生代采用复制算法,老年代采用标记-整理算法。
CMS收集器
Concurrent Mark Sweep
以获取最短回收停顿时间为目标的收集器
真正意义上的并发收集器,<br>实现了让垃圾收集线程与用户线程(基本上)同时工作。
标记-清除”算法
G1收集器
G1 (Garbage-First)是一款面向服务器的垃圾收集器
主要针对配备多颗处理器及大容量内存的机器.<br>以极高概率满足GC停顿时间要求的同时,还具备高吞吐量性能特征.
初始标记 并发标记<br>最终标记 筛选回收
维护了一个优先列表,每次根据允许的收集时间,<br>优先选择回收价值最大的Region
触发YGC和FGC
当一个新的对象来申请内存空间的时候,如果Eden区无法满足内存分配需求,则触发YGC
使用中的 S区和Eden区存活对象送到未使用的S区,
如果YGC之后还是没有足够空间,则直接进入 老年代分配,
如果老年代也无法分配空间,触发FGC,FGC之后还是放不下则报出OOM异常。