美文网首页
JVM(四) -- GC回收算法

JVM(四) -- GC回收算法

作者: OakesYa | 来源:发表于2020-05-18 21:13 被阅读0次

主要来源自阅读深入理解java虚拟机

标记-清除

标记清除算法分为标记和清除两个阶段,首先标记出所有需要回收的对象,在标记完成后统计回收被标记的对象。但是该算法可能会产生大量不连续的内存碎片,碎片太多可能会导致后面程序运行过程中需要分配较大对象时无法找到足够的连续内存而不得不提前触发垃圾回收

复制

复制算法将可用内存按容量划分为大小相等的两块,每次只使用其中的一块,当这一块内存用完了就将还存活的对象复制到另外一块上面,然后清理一下已使用的内存,这样在复制之后不用考虑内存碎片的情况,并提高了效率。所以HotSpot虚拟机将Survivor分为S0和S1

标记-整理

复制算法需额外增加内存空间用于复制,所以在标记-清除算法上升级一下可以变成标记-整理算法,标记过程仍然一样,但后续不是直接对可回收对象进行清理,而是让所有存活对象都向一端移动然后再清理掉可回收对象

分代收集

Java堆分为新生代和老年代,这样可以根据各个年代的特点采用最适当的收集算法,在新生代中每次垃圾回收都只有少量存活,所以可以选用复制算法,用少量存活对象的复制成本就可以完成收集。老年代因为对象存活率高,没有额外空间进行分配担保,所以需要使用标记清除或标记整理

相关文章

  • java核心知识点,pdf文档,让你彻底告别重复的CRUD

    JVM 线程 JVM内存区域 JVM运行时内存 垃圾回收与算法 Java四种引用类型 GC 分代收集算法 VS 分...

  • Java虚拟机总结

    JVM体系四大块: 类的加载 JVM内存结构 GC算法 垃圾回收 GC分析 性能调优 执行引擎 JVM架构图 一、...

  • jvm知识点总览

    jvm 总体梳理 jvm体系总体分四大块: 类的加载机制jvm内存结构GC算法 垃圾回收GC分析 命令调优 当然这...

  • 四级考试(1)

    1.简要阐述JVM的CMS GC算法和JVM的G1 GC算法的基本原理。 gc就是java的垃圾回收机制(gaba...

  • 揭秘JAVA JVM内幕(不合适初学者)

    本篇文章将重点分析jvm,涉及到的内容包括jvm内存模型,类加载器,GC回收算法,GC回收器,整体偏向于理论。 本...

  • JVM(四) -- GC回收算法

    主要来源自阅读深入理解java虚拟机 标记-清除 标记清除算法分为标记和清除两个阶段,首先标记出所有需要回收的对象...

  • JVM 知识梳理

    JVM 体系总体分四大块: 类的加载机制 jvm内存结构 GC算法 垃圾回收 GC分析 命令调优 1. 类的加载机...

  • 简单谈谈JVM中的GC(中)

    书接上文,在了解JVM的分代模型后,接着来简单聊聊JVM中GC算法和不同的GC收集器【求关注】 GC回收算法 一个...

  • JVM(八)-垃圾回收机制与垃圾收集器

    JVM垃圾回收(GC)模型 垃圾判断算法 GC算法 垃圾收集器的实现和选择 垃圾判断算法 引用计数法(Refere...

  • 深入Java底层:GC

    概述 下文主要分为以下几个大模块进行JVM的GC解读: 垃圾回收之标记算法 垃圾回收之回收算法 堆内存年轻代垃圾收...

网友评论

      本文标题:JVM(四) -- GC回收算法

      本文链接:https://www.haomeiwen.com/subject/akyzghtx.html