JVM的垃圾回收算法有哪些

标记清除算法

标记清除算法,是将垃圾回收分为2个阶段,分别是标记和清除

  1. 根据可达性分析算法得出的垃圾进行标记
  2. 对这些标记为可回收的内容进行垃圾回收
  • 优点:标记和清除速度较快
  • 缺点:碎片化较为严重,内存不连贯的

标记整理算法

优缺点同标记清除算法,解决了标记清除算法的碎片化的问题,同时,标记压缩算法多了一步,对象移动内存位置的步骤,其效率也有有一定的影响。老年代的垃圾回收器一般使用标记整理算法

复制算法

标记算法是将内存分成两块相等的区域,把标记的对象清除后,就会把存活的对象整理复制到另一块内存,一般年轻代的垃圾回收会采用复制算法

  • 优点
  1. 在垃圾对象多的情况下,效率较高
  2. 清理后,内存无碎片
  • 缺点

分配的2块内存空间,在同一个时刻,只能使用一半,内存使用率较低

相关推荐
禁默35 分钟前
算法魅力之牛叉的前缀和
算法
死磕代码程序媛2 小时前
《数据挖掘:概念、模型、方法与算法(第三版)》
人工智能·算法·数据挖掘
王佑辉3 小时前
【jvm】C2编译器
jvm
CHENWENFEIc6 小时前
数据结构之二叉树详解:从原理到实现
c语言·数据结构·学习·程序人生·算法·学习方法·改行学it
Sasakihaise_6 小时前
LeetCode 3208. 交替组 II
算法·leetcode·计数·循环链表
醒了就刷牙6 小时前
Leetcode 面试150题 189. 轮转数组 中等
算法·leetcode·面试
<但凡.6 小时前
力扣题解14——最长公共前缀
算法·leetcode
7yewh6 小时前
LeetCode 力扣 热题 100道(十)回文链表(C++)
c语言·数据结构·c++·算法·leetcode·链表
JokerSZ.6 小时前
【Leetcode 每日一题】235. 二叉搜索树的最近公共祖先
算法·leetcode·遍历