Mark Sweep
标记清理<span style="font-size: 18px;" data-mce-style="font-size: 18px;">(<strong>Mark Sweep No-Compat</strong>)</span>
标记:遍历内存中的存活对象<span style="font-size: 18px;" data-mce-style="font-size: 18px;">包括封装在对象里的数据,进行标记</span>
清理:对整个内存中非存活对象进行清理
产生内存碎片
标记整理<span style="font-size: 18px;" data-mce-style="font-size: 18px;">(<strong>Mark Sweep Compat</strong>)</span>
标记:遍历内存中的存活对象<span style="font-size: 18px;" data-mce-style="font-size: 18px;">包括封装在对象里的数据,进行标记</span>
整理:将对象移动到空余的内存空间,因为经过移动,对象间的内存间隙被消除
<span style="font-size: 18px;" data-mce-style="font-size: 18px;">复制回收器</span><span style="font-size: 18px;" data-mce-style="font-size: 18px;">(<b>Mark</b> <strong>Copy Collector</strong>)</span>
将对象“分代”,适合生命周期短的对象
把存活的对象直接复制到指定区域,存货的对象在不同区域间移动
需要保留足够的内存空间来复制(所以老年代一般不用它)<br>