什么是垃圾回收(GC)
垃圾回收机制是一种找到内存中的垃圾将其释放并回收空间的机制
常见的垃圾回收算法
- 引用计数法
- 标记清楚法
- 标记整理法
- 分代回收法
引用计数法
- 核心思想:设置引用数,判断当前的引用数是否为0
- 设置引用计数器
- 引用关系改变时修改引用数值
- 引用数值为0时立即回收
优点
- 发现垃圾立即回收
- 最大限度减少程序暂停
缺点
- 无法回收循环引用的对象
- 时间开销较大
标记清除法
- 核心思想:分标记和清楚两个阶段完成
- 遍历所有对象找到标记活动对象
- 遍历所有对象清除没有标记的对象
- 回收相应空间
优点
- 可以回收循环引用的对象
缺点
- 回收的内存碎片化,不连续
- 不会立即回收垃圾对象
标记整理算法
- 核心思想:在标记清除的基础上做优化,标记阶段和标记清除算法一致,但是清除阶段会先执行整理,移动对象的位置,保证回收内存空间的连续性
- 遍历所有对象找到标记活动对象
- 执行整理,移动对象的位置
- 遍历所有对象清除没有标记的对象
- 回收相应空间
优点
- 可以回收循环引用的对象
缺点
- 回收的内存碎片化,不连续
- 不会立即回收垃圾对象
网友评论