垃圾收集算法
标记-清除算法
该算法主要有两个阶段:标记,清除。首先标记出所有需要回收的对象,标记完成后,回收(清除)所有被标记的对象;或标记所有不需要要回收的对象,然后回收所有未被标记的对象。
缺点:
- 执行效率不稳定,如果Java堆中包含大量需要清除的对象,这是必须要进行大量的标记和清除动作,导致两个过程的执行效率随着对象的数量蒸架而降低。
- 内存碎片化
标记-复制算法
将可用内存按照容量划分为两个大小一致的内存空间,每次仅使用其中一块,当一块内存用完后,将存活的对象移动到另一块内存中,然后清理该内存。
缺点:
- 如果有大量对象存活,在复制时会产生大量的开销
- 可用内存缩小一半,空间浪费严重。
标记-整理算法
首先标记存活的对象,然后按照一定方式用存活的对象覆盖“死亡”对象所占用的内存空间以达到整理的目的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。