jvm_常见垃圾回收器

Java 虚拟机常见垃圾回收器

    JVM 虚拟机中常见垃圾回收器一共有七种垃圾回收器,它们搭配使用实现了JVM的垃圾回收机制。

1. Serial 收集器

       Serial垃圾回收器是最早的垃圾回收器,它是单线程回收器并且作用于新生代。缺点:Serail回收器在进行垃圾回收时,

会暂停其他线程的工作。优点:尽管Serial是很古老的垃圾回收器,它依然是HotSpot虚拟机运行在客户端模式下的默认新

生代收集器,有着优于其他收集器的地方,那就是简单而高效(与其他收集器的单线程相比),对于内存资源受限的环境,

它是所有收集器里额外内存消耗最小的;

 

2. parNew 收集器

      parNew垃圾回收器是Serial垃圾回收器的多线程并行版本。parNew收集器除了多线程收集之外,相较于Serail收集器并没

有什么改进。在JDK9之后,parNew 垃圾收集器只能和CMS垃圾收集器一起使用,可以理解为parNew 垃圾收集器并入CMS

垃圾收集器中。

 

3. Parallel Scavenge 收集器

     Parallel Scavenge收集器也是一款新生代收集器,它同样是基于标记-复制算法实现的收集器,也是能够并行收集的多线程

收集器。

 

4. Serial Old收集器

      Serial Old是Serial收集器的老年代版本,它同样是一个单线程收集器,使用标记-整理算法。这个收集器的主要意义也是供

客户端模式下的HotSpot虚拟机使用。

 

5. Parallel Old收集器

      Parallel Old是Parallel Scavenge收集器的老年代版本,支持多线程并发收集,基于标记-整理算法实现。Parallel old是jdk6之后

才出现的。对于在此之前,如果新生代使用Parallel Scavenge 收集器,那么老年代能够使用的垃圾收集器只有 Serail old,对于服务

器的运行,这无疑是是不合适的,效率没有 parNew 加CMS 组合高。

 

6. CMS 收集器

       CMS 收集器是一种以获取最短回收停顿时间为目标的收集器。作用于老年代,采用标记-清除算法。CMS收集器主要用于B/S架构,

CMS于parNew处理器组合实现垃圾回收

 

7. G1 收集器

       面对Java堆的垃圾回收器。JDK9以后,G1是java服务器端主流的垃圾收集器。G1跳出了这个樊笼,它可以面向堆内存任何部分来组

成回收集(Collection Set,一般简称CSet)进行回收,衡量标准不再是它属于哪个分代,而是哪块内存中存放的垃圾数量最多,回收收益

最大,这就是G1收集器的Mixed GC模式。G1开创的基于Region的堆内存布局是它能够实现这个目标的关键。虽然G1也仍是遵循分代收集

理论设计的,但其堆内存的布局与其他收集器有非常明显的差异:G1不再坚持固定大小以及固定数量的分代区域划分,而是把连续的Java

堆划分为多个大小相等的独立区域(Region),每一个Region都可以根据需要,扮演新生代的Eden空间、Survivor空间,或者老年代空间。

收集器能够对扮演不同角色的Region采用不同的策略去处理。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值