垃圾回收算法

垃圾回收算法

1.标记-清除算法:最基础的算法是“标记-清除算法”,分为:

  • 标记
  • 清除

两个阶段。
——————————————————————————————————————————————————————

该算法的缺点是:

  • 效率问题,标题和清除的效率都不高;
  • 空间问题:标记清除后会有大量的不连续的内存碎片,碎片太多会导致分配较大空间的对象时候,无法找到足够的内存而不得不提前出发另一次垃圾收集动作。

2.复制算法

  • 它将内存划分为大小相等的两块,每次使用其中一块,当内存块用完了,将或者的对象复制到另一块上,然后将已经使用的空间给清除掉。算法的代价是内存缩小了一半。

3.标记-整理算法

  • 标记整理算法类似标记清除算法,但是不是对可回收对象直接清理,而是让所有存活对象向一端移动,然后直接清理掉端以外的内存。
    *4.分代收集算法
  • 算法根据各个年代特点使用适合的算法,内存堆分为新生的老年代。