JVM垃圾回收算法

水深无声 2023-02-12 15:25 81阅读 0赞

标记 —— 清除算法

  1. 直接标记清除

缺点:

  1. 效率低
  2. 产生大量的空间碎片

复制算法

  1. 把空间分成两块,将存活对象放在其中一半上,每次只对其中一块进行 GC。循环往复

缺点:

  1. 空间利用率低

标记-整理算法

  1. 主要是把存活对象移到内存的一端。

分代回收

  1. 根据存活对象划分几块内存区,分为新生代和老年代
  2. 根据各个年代的特点制定相应的回收算法。

新生代

  1. 每次垃圾回收都有大量对象死去,只有少量存活,选用复制算法比较合理。

老年代

  1. 老年代中对象存活率较高、没有额外的空间分配对它进行担保。
  2. 使用 标记 —— 清除 或者 标记 —— 整理 算法回收。

发表评论

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

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

相关阅读

    相关 JVM垃圾回收算法

    > 标记 —— 清除算法 直接标记清除 缺点: 效率低 产生大量的空间碎片 > 复制算法 把空间分成两块,将存活对象放在其中一半上,每

    相关 JVM垃圾回收算法

    > 全文是在阅读了《深入理解Java虚拟机》进行的摘录笔记 标记-清除算法 算法分为“标记”和“清除”两个阶段:标记出所有需要回收的对象,在标记完成后,统一回收掉所有被

    相关 JVM垃圾回收算法

    Java是一门不用程序员手动管理内存的语言,全靠JVM自动管理内存,既然是自动管理,那必然有一个垃圾内存的回收机制或者回收算法。 在Java堆上分配一个内存给实例对象时,此时

    相关 JVM 垃圾回收算法

    在说垃圾回收算法之前,先谈谈JVM怎样确定哪些对象是“垃圾”。 1.引用计数器算法: 引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象的时候,计数器\+1

    相关 JVM垃圾回收算法

    前言 程序计数器,虚拟机栈,本地方法3个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出有条不紊地执行着出栈和入栈操作,每一个栈帧中分配多少内存,基本上是在类结