java jvm gc 垃圾回收机制 总结

垃圾回收方法(算法,垃圾收集器)

前提

  • jdk1.8以上(已经无永久代(Permanent Generation (PermGen),变成元空间(Metaspace))

算法

  1. 基础算法
    复制算法(新生代使用)
    标记-清除算法(一般老生代使用)
    标记-整理算法(一般老生代使用)
  2. 分代收集算法(Generational Collection),就是平时我们总说的gc
    新生代一般使用复制算法,老生代一般使用标记-整理算法,元空间(过阀值就收集)

分代收集算法(Generational Collection)垃圾收集器怎么区分

  • 是单线程还是多线程?
  • 阶段不同?
  • 是否Stop The Word ?(业务线程是否停止)

垃圾收集器几个问题

  • 是新生代,老生代还是新生代和老生代可以使用?

垃圾收集器类别

收集器新/老生代阶段说明单/多线程进行收集是否Stop The Word备注
Serial
ParNewSerial多线程版本
Parallel Scavenge吞吐量高(其他都是Stop The Word时间短),用于后台运算而不需要太多交互的任务
Serial OldSerial老年代版本
Par OldParallel Scavenge老年代版本
CMS(Concurrent Mark Sweep)1.初始标记2.并发标记3.重新标记4.并发清除1,3阶段1.并发指的是与业务线程。2.有缺点。3.适合B/S。4.其为标记-清除(其他为标记整理),所以会产生碎片。
G1(Garbage First)1.设置垃圾收集不超过多少毫秒2.划分区域

备注:一般ParNew和CMS配合使用

垃圾回收器总结

-因为使用的是分代收集算法(Generational Collection),所以 一般情况下,所有收集器新生代都使用复制算法,老生代都使用标记-整理算法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值