Java虚拟机之GC算法

红太狼 2022-02-04 09:34 326阅读 0赞
  • 标记清除算法

一个是效率问题,标记和清除两个过程的效率都不高;另一个是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。

  • 复制算法(新生代)

可用内存按容量划分为大小相等的两块

  • 标记整理(老年代)

让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存

  • 分代收集

把Java堆分为新生代和老年代,这样就可以根据各个年代的特点采用最适当的收集算法。

发表评论

表情:
评论列表 (有 0 条评论,326人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java虚拟GC算法

    标记清除算法 一个是效率问题,标记和清除两个过程的效率都不高;另一个是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分

    相关 Java虚拟GC基础

    内存的动态分配与内存回收技术已经相当成熟,为什么我们还要去了解GC和内存分配呢? 需要排查各种内存溢出、内存泄漏问题。 GC成为系统瓶颈时,需要实施必要的监控和调