Java 面试题
目录

Java 虚拟机 (JVM) 中常用的垃圾回收器有哪些?

· 约 2 分钟读完 · 第 129 / 274 章

推荐答案

在 Java 虚拟机 (JVM) 中,常用的垃圾回收器包括以下几种:

  1. Serial GC:单线程垃圾回收器,适用于单核 CPU 环境。
  2. Parallel GC:多线程垃圾回收器,适用于多核 CPU 环境,注重吞吐量。
  3. CMS (Concurrent Mark Sweep) GC:并发垃圾回收器,注重减少停顿时间。
  4. G1 (Garbage First) GC:面向服务端应用的垃圾回收器,兼顾吞吐量和停顿时间。
  5. ZGC (Z Garbage Collector):低延迟垃圾回收器,适用于大内存应用。
  6. Shenandoah GC:低延迟垃圾回收器,适用于大内存应用。

本题详细解读

Serial GC

  • 特点:单线程执行垃圾回收,适用于单核 CPU 环境。
  • 适用场景:客户端应用或小型应用,内存需求不大。
  • 优点:简单高效,适合单线程环境。
  • 缺点:在多核环境下性能较差。

Parallel GC

  • 特点:多线程执行垃圾回收,注重吞吐量。
  • 适用场景:多核 CPU 环境,适合后台处理任务。
  • 优点:高吞吐量,适合多核环境。
  • 缺点:停顿时间较长。

CMS (Concurrent Mark Sweep) GC

  • 特点:并发执行垃圾回收,减少停顿时间。
  • 适用场景:对响应时间要求较高的应用。
  • 优点:低停顿时间,适合交互式应用。
  • 缺点:内存碎片问题,吞吐量较低。

G1 (Garbage First) GC

  • 特点:面向服务端应用,兼顾吞吐量和停顿时间。
  • 适用场景:大内存应用,对停顿时间和吞吐量都有要求。
  • 优点:平衡吞吐量和停顿时间,适合大内存应用。
  • 缺点:配置复杂,需要调优。

ZGC (Z Garbage Collector)

  • 特点:低延迟垃圾回收器,适用于大内存应用。
  • 适用场景:对延迟要求极高的应用,如实时系统。
  • 优点:极低停顿时间,适合大内存应用。
  • 缺点:需要较高的硬件支持。

Shenandoah GC

  • 特点:低延迟垃圾回收器,适用于大内存应用。
  • 适用场景:对延迟要求极高的应用,如实时系统。
  • 优点:极低停顿时间,适合大内存应用。
  • 缺点:需要较高的硬件支持。