JVM所有的垃圾回收器已整理完毕,请笑纳!

开发
Java 垃圾回收器是Java虚拟机(JVM)中的一个重要组件,无论是日常开发,还是技术面试中,它都是一个非常重要的知识点。

Java 垃圾回收器(Garbage Collector,GC)是Java虚拟机(JVM)中的一个重要组件,无论是日常开发,还是技术面试中,它都是一个非常重要的知识点。

那么,如何才能系统性地学习 JVM垃圾回收器的相关知识呢?这篇文章,我们整理了过往所有关于 JVM回收器的文章,希望可以帮到你。

首先,让我们从全局来了解下 JVM垃圾回收器的类型以及它们的特点,优缺点和适用场景:

1. Serial Garbage Collector

  • 特点: 使用单线程进行垃圾回收。
  • 适用场景: 适用于单处理器机器或小型应用程序。
  • 优点: 实现简单,开销低。
  • 缺点: 会导致较长的暂停时间,影响应用程序性能。

2. Parallel Garbage Collector

  • 特点: 使用多线程进行垃圾回收。
  • 适用场景: 适用于多处理器机器和需要高吞吐量的应用程序。
  • 优点: 提高了垃圾回收的效率,减少了暂停时间。
  • 缺点: 在垃圾回收期间,应用程序仍然会暂停。

3. CMS (Concurrent Mark-Sweep) Garbage Collector

  • 特点: 主要目标是减少暂停时间,适用于需要低延迟的应用。
  • 适用场景: 适用于对响应时间要求较高的应用程序。
  • 优点: 大部分垃圾回收工作在与应用程序并发进行,减少了暂停时间。
  • 缺点: 可能会产生内存碎片,需要更多的CPU资源。

4. G1 (Garbage-First) Garbage Collector

  • 特点: 设计用于处理大堆内存,提供可预测的暂停时间。
  • 适用场景: 适用于大内存和需要可预测暂停时间的应用程序。
  • 优点: 分区回收内存,减少了长时间的暂停,适合大堆内存。
  • 缺点: 相比其他垃圾回收器,调优复杂度较高。

5. ZGC (Z Garbage Collector)

  • 特点: 设计目标是处理大堆内存,且暂停时间非常短(通常低于10毫秒)。
  • 适用场景: 适用于超大内存应用和对暂停时间极为敏感的应用。
  • 优点: 极低的暂停时间,可处理TB级别的堆内存。
  • 缺点: 目前还在不断发展和优化中,可能不如其他垃圾回收器稳定。

6. Shenandoah Garbage Collector

  • 特点: 类似于ZGC,目标是提供低暂停时间。
  • 适用场景: 适用于低延迟和大堆内存的应用。
  • 优点: 低暂停时间,适合大内存应用。
  • 缺点: 需要更多的CPU资源,复杂度较高。

所有 JVM垃圾回收器对比如下图:

最后,虽然 JVM垃圾回收器的知识很重要,但是它真的有点难,而且在日常开发中,很多小伙伴常年奋斗在CRUD业务上,很少和JVM直接打交道,因此,理解和掌握回收器的原理需要一个过程。

责任编辑:赵宁宁 来源: 猿java
相关推荐

2017-08-04 10:53:30

回收算法JVM垃圾回收器

2022-01-20 10:34:49

JVM垃圾回收算法

2022-03-21 11:33:11

JVM垃圾回收器垃圾回收算法

2021-10-05 20:29:55

JVM垃圾回收器

2024-03-11 16:27:02

垃圾回收器JVM

2023-08-08 10:29:55

JVM优化垃圾回收

2021-11-05 15:23:20

JVM回收算法

2022-06-22 09:54:45

JVM垃圾回收Java

2009-12-30 10:14:29

JVM垃圾回收

2010-09-25 15:33:19

JVM垃圾回收

2021-02-04 10:43:52

开发技能代码

2010-09-26 16:42:04

JVM内存组成JVM垃圾回收

2010-09-27 09:01:26

JVM分代垃圾回收

2009-12-25 16:15:31

JVM垃圾回收算法

2022-06-07 07:10:40

MinorGCMajorGCFullGC

2010-09-25 15:26:12

JVM垃圾回收

2010-09-16 15:10:24

JVM垃圾回收机制

2017-04-25 14:39:55

JVM内存Java

2022-06-10 07:13:29

JVM垃圾回收

2012-01-09 16:53:36

JavaJVM
点赞
收藏

51CTO技术栈公众号