深入理解JAVA虚拟机系列之垃圾收集器

一、简介

  • 本文主要介绍常见的垃圾回收器;

二、经典垃圾收集器组合

2.1 HotSpot虚拟机的垃圾回收器

  • 这个关系不是一成不变的,由于维护和兼容性测试的成本,在JDK8的时候将 Serial + CMS、ParNew + Serial Old 的组合声明为废弃,并在JDK9的时候完全取消了这俩种组合;

2.2 并行与并发

  • 并行:并行描述的是多条垃圾收集器线程之间的关系,说明同一时间有多条这样的线程在协同工作,通常默认此时用户线程是处于等待状态;
  • 并发:并发描述的是垃圾收集器线程与用户线程之间的关系,说明同一时间垃圾收集线程与用户线程都在运行。由于用户线程并未被冻结,所以程序仍然能响应服务请求,但由于垃圾收集器线程占用了一部分系统资源,此时应用程序的处理的吞吐量将受到一定影响;

三、垃圾收集器对比

四、经典垃圾回收器

4.1 Serial收集器

4.2 ParNew收集器

4.3 Parallel Scavenge收集器

4.4 Serial Old收集器

4.5 Parallel Old收集器

4.6 CMS收集器

4.7 G1(Garbage First)收集器

4.8 Shenandoah收集器

4.9 ZGC收集器

posted @ 2021-01-23 23:18  请叫我猿叔叔  阅读(64)  评论(0)    收藏  举报