深入理解JVM------垃圾收集器

引言

      如果说收集算法是垃圾回收的方法论,那么垃圾收集器就是内存回收的具体实现。基于我们平时使用的jvm都是HotSpot的实现,因此,本篇讨论的垃圾收集器也是基于HotSpot的jvm。

垃圾收集器分类

        串行收集器:只有一条GC线程,运行时需要停止用户程序。

       

        并行收集器:有多条GC线程,运行时也需要停止用户程序。

    

        并发收集器有一条或多条GC线程,每个收集周期都要经历初始标记、并发标记、重新标记、并发清除

               

        Garbage First(G1):有一条或多条GC线程,收集动作类似并发:初始标记、并发标记、重新标记、清除、转移回收

    

HotSpot中的垃圾收集器

      上面我们已经知道了垃圾收集器的分类,下面我们看下每种类型下对应的垃圾收集器:   

        串行收集器的实现:serial(用于新生代,采用复制算法)、serial old(用于年老代,采用标记/整理算法)。

       并行收集器的实现:ParNew(用于新生代,采用复制算法)、Parallel Scavenge(用于新生代,采用复制算法)、Parallel old(用于年老代,采用标记/整理算法)。

       并发收集器的实现:concurrent mark sweep[CMS](用于年老代,采用标记/清除算法)。

       Garbage First(G1):用于新生代和老年代,新生代采用复制算法、老年代采用标记-整理

        可以看到,上面每一种垃圾搜集器都是针对不同内存区域所设计的,因为它们采用的算法不同,凡是用于新生代的都是使用的复制算法,而用于年老代的都是使用的标记/清除或者标记/整理算法。

        下面我们来一起看下jdk垃圾回收的大家庭以及它们之间的相互组合关系:

        

        针对上面简单说明下,上面三个是新生代收集器,下面三个是老年代收集器,两者之间的连线表示两者可以配合使用,中间的G1收集器。

结束语

        本章大致介绍了7种垃圾收集器,关于它们的运行方式和特点我们下一章再一起讨论。  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值