[jvm] -- 垃圾收集算法篇

  • 垃圾收集算法

  • 标记-清除算法
    • 首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。
    • 缺点:
      • 效率问题;
      • 空间问题(标记清除后会产生大量不连续的碎片)

  • 复制算法
    • 它可以将内存分为大小相同的两块,每次使用其中的一块。当这一块的内存使用完后,就将还存活的对象复制到另一块去,然后再把使用的空间一次清理掉。
    • 缺点:
      • 消耗内存

  • 标记-整理算法
    • 根据老年代的特点提出的一种标记算法,标记过程仍然与“标记-清除”算法一样,但后续步骤不是直接对可回收对象回收,而是让所有存活的对象向一端移动,然后直接清理掉端边界以外的内存。

  • 分代收集算法
    • 根据对象存活周期的不同将内存分为几块。java堆分为新生代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。
posted @ 2020-06-30 14:40  双木l之林  阅读(100)  评论(0编辑  收藏  举报