【JVM虚拟机篇10】垃圾回收算法

29 阅读1分钟

垃圾回收算法

  • 标记清除算法
  • 复制算法
  • 标记整理算法

标记清除算法(不常用)

标记清除算法,是将垃圾回收分为2个阶段:标记和清除

  • 根据可达性分析算法将得到的垃圾进行标记
  • 对这些标记为可回收的内容进行垃圾回收

image.png

image.png

标记整理算法

标记整理算法和标记清除算法一样,只是多了一步,将对象移动位置 (效率上有一定影响,但解决了标记清除算法的碎片化问题) image.png

复制算法

将内存分为两个大小相等区域,标记阶段和之前的算法是类似的,也是通过可达性分析算法标记存活的对象;然后将存活的对象复制到另一块内存区域。复制完后,清理这块内存。

image.png

优点:

  • 在立即对象多的情况下,效率较高
  • 清理后,内存无碎片

缺点:

  • 被分为了2块内存空间,同一时刻,只能使用一半,内存使用率较低