垃圾回收算法详解

垃圾回收算法详解

标记-清除算法

  • 标记所有需要回收的对象
  • 统一清除被标记的对象

缺点:产生内存碎片

复制算法

  • 将内存分为两块
  • 每次只使用一块
  • 清理时复制存活对象到另一块

优点:无内存碎片
缺点:可用内存减半

标记-整理算法

  • 标记需要回收的对象
  • 移动存活对象到一端
  • 清除边界外的对象

优点:无内存碎片

分代收集算法

  • 新生代:复制算法
  • 老年代:标记-清除/整理

总结

不同算法适用于不同场景,现代JVM通常组合使用多种算法。