面试官问我--JVM 七种垃圾收集器解析

垃圾检测和收集算法只是内存回收的方法论,而垃圾收集器才是内存回收的具体实现(可理解为“接口”与“实现类”的关系)。
ps:GC垃圾回收(垃圾检测-回收算法):https://editor.csdn.net/md/?articleId=103819619

垃圾收集器分类:

在这里插入图片描述
新生代的收集器包括

  • Serial
  • PraNew
  • Parallel Scavenge

老年代的收集器包括

  • Serial Old
  • Parallel Old
  • CMS

回收整个Java堆(新生代和老年代)

  • G1收集器

新生代垃圾收集器解析

Serial 收集器
Serial 收集器是最基础、历史最悠久的收集器。特点:

  • 单线程收集,且垃圾收集时,必须暂停其他所有的工作线程(Stop The World, STW),直到它收集结束。
  • HotSpot 虚拟机运行在 Client 模式下默认新生代收集器。
  • 优于其他收集器的地方:简单而高效(与其他收集器的单线程比)。对于限定单个 CPU 的环境来说,Serial
    收集器由于没有线程交互的开销,专心做垃圾收集自然可以获得最高的单线程收集效率。

运行示意图如下:
在这里插入图片描述
ParNew 收集器
ParNew 收集器实质上是 Serial 收集器的多线程并行版本。
除了同时使用多条线程进行垃圾收集之外,其余的行为包括 Serial 收集器可用的所有控制参数(-XX:SurvivorRatio, -XX:PretenureSizeThreshold、-XX:HandlePromotionFailure 等)、收集算法、Stop The World、对象分配原则、回收策略等都与 Serial 收集器完全一致。
运行示意图:
在这里插入图片描述
使用/禁用该收集器的 VM 参数
注:JDK 9 取消了 -XX:+UseParNewGC 参数

-XX:+/-UseParNewGC

Parallel Scave

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值