GC的三种主要算法
- 标记-清除
- 复制
- 标记-整理
1.标记-清除
基本思路:算法分为标记和清除两个阶段, 首先标记所有要回收的对象,然后在清除阶段统一回收。
优缺点:
1. 效率问题,标记清除阶段效率都不高。
2. 空间问题,清除后产生大量不连续的内存碎片,不利于大对象内存的分配
2.复制
基本思路:将内存分为大小相等的两块,只使用其中的一块,当这块内存用完了,就把这块上存活的对象复制到另一块, 然后将已满的那块一次性清理掉。
优缺点:
1. 实现简单,运行高效
2. 可使用空间为原来一半,空间牺牲太大
3.标记-整理
基本思路: 先标记出可回收内存,然后让所有存活的对象都向一段移动, 然后直接清理掉边界以外的内存。
* 优缺点:*
1.不适用与可回收内存较多,频繁的情况
所有的方法都其优劣之处,针对不同的情况和需求,选择最合适的方法。