引言
在 JDK 21 中,Java 虚拟机 (JVM) 提供了多种垃圾收集器 (GC) 选项,其中 G1 (Garbage-First) 和 ZGC (Z Garbage Collector) 是两种备受关注的低延迟垃圾收集器。本文将深入对比这两种垃圾收集器,从原理、性能特性、适用场景、配置参数以及实际应用等方面进行详细分析,帮助开发者根据应用需求选择合适的垃圾收集器。
G1 垃圾收集器概述
基本原理
G1 是 Oracle JDK 中的一种分代垃圾收集器,自 JDK 7u4 引入,JDK 9 起成为默认 GC。它将堆内存划分为多个大小相等的 Region (区域),每个 Region 可以是 Eden、Survivor、Old 或 Humongous 类型。G1 使用 Remembered Set 避免全堆扫描,并通过 Pause Prediction Model 预测停顿时间。

