JVM的垃圾回收算法有哪些

标记清除算法

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

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

标记整理算法

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

复制算法

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

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

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

相关推荐
qq_2965532712 小时前
【LeetCode】最大子数组乘积:三种解法从暴力到最优
数据结构·算法·leetcode·职场和发展·动态规划·柔性数组
zh15702312 小时前
golang如何生成和验证JWT Token_golang JWT Token生成验证步骤
jvm·数据库·python
不知名的老吴12 小时前
关于C++中的placement new
数据结构·c++·算法
_3762715312 小时前
如何利用Bootstrap的Flex工具类快速排版
jvm·数据库·python
平行侠12 小时前
023Pollard-ρ 因子分解算法
数据结构·算法
m0_7406532212 小时前
Go 中通过指针实现变量名的“传入”与原地修改
jvm·数据库·python
2301_7950997412 小时前
如何在MongoDB主从架构中利用Change Stream捕获数据变更_必须在副本集模式下工作
jvm·数据库·python
2401_8800714012 小时前
Django怎么优雅发送邮件_Python配置SMTP后端实现异步通知
jvm·数据库·python
谭欣辰12 小时前
C++倍增算法详解
数据结构·c++·算法
MATLAB代码顾问12 小时前
差分进化算法(DE)原理与Python实现
开发语言·python·算法