jvm虚拟机中常用的几种垃圾回收算法

16 篇文章 0 订阅
Java语言是不需要程序员手动管理内存的,jvm虚拟机自动管理内存,进行垃圾回收,这里说几种常用的垃圾回收算法以
1. 复制算法:

此算法把内存空间分为两个相等的区域,每次只使用其中一个区域,垃圾回收时,遍历当前使用区域,把正在使用中的对象复制到另外一块区域当中,此算法每次只处理正在使用中的对象,因此复制成本比较小,同时复制过去以后还能进行相应的内存整理,不会出现碎片问题,缺点是需要两倍的内存空间

2. 标记-清除算法:

此算法执行分为两阶段,第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除,此算法需要暂停整个应用,同时会产生虽碎片

3. 标记-整理算法:

此算法结合了标记-清除和复制两个算法的优点,也分两阶段,第一阶段从根节点开始标记所有被引用对象,第二阶段遍历整个堆,把清除未标记对象并且把存货对象压缩到堆中的一块,按排序倒放,此方法避免了标记清除的碎片问题,同时也避免了复制算法的空间问题

4. 垃圾收集器分类:
  1. 次收集:当年轻代堆空间紧张时会被触发,相当于全收集而言,收集间隔较短
  2. 全收集:当老年代或者持久代堆空间满了,会触发全收集操作,可以使用system.gc()方法来显式的启动全收集,全收集一般根据大小的不同,需要的时间也不同,不会超过2.3秒
5. 堆中的7种分代垃圾收集器:
5.1 新生代收集器:
  1. 串行收集器(Serial)
  2. 并行收集器(parNew)
  3. Parallel Scavenge收集器
5.2 老年代收集器:
  1. Serial Old收集器
  2. Parallel Old收集器
  3. CMS收集器
5.3 分区收集器:
  1. G1收集器(Garbage-First)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值