java自带的垃圾回收器是什么
时间: 2025-01-30 08:11:06 浏览: 40
### Java 内置垃圾回收器类型及其工作原理
#### 1. Serial GC
Serial GC 是一种单线程的垃圾回收器,适用于小型应用或客户端场景。其主要特点是简单高效,在年轻代使用复制算法[^1],老年代则采用标记-整理算法。这种方式虽然有效减少了内存碎片,但在多核处理器环境中性能较差。
```java
// 设置 JVM 使用 Serial GC
java -XX:+UseSerialGC MyApp
```
#### 2. Parallel GC (也称为 Throughput Collector)
Parallel GC 利用了现代 CPU 的多核心特性,通过并行处理提高垃圾回收效率。年轻代同样采用了高效的复制算法,而在老年代则是基于标记-整理两种模式之一运作。此收集器旨在最大化应用程序的整体吞吐量。
```java
// 启用 Parallel GC
java -XX:+UseParallelGC MyApp
```
#### 3. CMS (Concurrent Mark-Sweep) GC
CMS 收集器专注于减少停顿时间,特别适合于交互式应用和服务端应用。它的工作流程可以分为初始标记、并发标记、重新标记以及最后的清扫阶段。其中,大部分操作都可以与用户程序同时进行,从而降低了因垃圾回收造成的延迟影响。
```java
// 配置 CMS GC
java -XX:+UseConcMarkSweepGC MyApp
```
#### 4. G1 (Garbage First) GC
G1 是一款分区式的垃圾收集器,能够提供更灵活的空间管理方案。堆被划分为若干个大小相等的小区域(region),这些区域内部分配给新生代和老年代。当触发条件满足时,G1会选择优先回收价值最高的那部分地区——即含有最多可回收空间的部分。对于存活率较高的对象,则会迁移到其他区域以保持数据紧凑性。
```java
// 应用 G1 GC
java -XX:+UseG1GC MyApp
```
#### 5. ZGC (Z Garbage Collector)
作为最新一代的低延时垃圾收集器,ZGC 设计之初就考虑到了当今硬件的发展趋势,比如超大容量RAM的支持等问题。ZGC 可以实现在不影响正常业务逻辑的前提下完成全堆范围内的并发标记及重定位动作,并且保证最长不超过十毫秒级别的STW(Stop The World)[^4]。
```java
// 开启 ZGC
java -XX:+UseZGC MyApp
```
阅读全文
相关推荐


















