要看Java默认的垃圾回收器
可以使用以下命令
java -XX:+PrintCommandLineFlags -version
各个java版本默认的垃圾回收器
从Java 1(JDK 1.0)开始到Java 21之间的各个Java版本默认的垃圾回收器经历了一系列的演变。以下是一些主要版本的Java默认垃圾回收器的概述:
-
JDK 1.0 - 1.2:
- 这些早期版本的Java并没有提供垃圾回收器的选择,它们使用了一个简单的标记-清除算法。
-
JDK 1.3:
- 引入了串行垃圾回收器(Serial GC),这是第一个真正意义上的垃圾回收器。
-
JDK 1.4:
- 引入了并行垃圾回收器(Parallel GC),也称为吞吐量优先的垃圾回收器,它在Server模式下成为默认的垃圾回收器。
-
JDK 5 :
- 引入了Parallel Scavenge收集器,它与Parallel Old收集器一起使用,成为JDK 5到JDK 7的默认垃圾回收器组合。
-
JDK 6:
- 继续使用Parallel Scavenge和Parallel Old作为默认垃圾回收器。
-
JDK 7:
- 默认垃圾回收器仍然是Parallel Scavenge和Parallel Old。
-
JDK 8:
- 继续使用Parallel Scavenge和Parallel Old作为默认垃圾回收器。
- 引入了G1(Garbage-First)垃圾回收器,在JDK 8中也可以通过参数
-XX:+UseG1GC
来启用。
-
JDK 9:
- G1垃圾回收器成为默认垃圾回收器,适用于大型堆和需要可预测停顿时间的应用。
-
JDK 10 - 16:
- 继续使用G1作为默认垃圾回收器。
-
JDK 17:
- G1垃圾回收器仍然是默认选择,但引入了ZGC(Z Garbage Collector)作为实验性特性。
-
JDK 21:
- 根据搜索结果,JDK 21支持多种垃圾回收器,包括G1、Parallel和ZGC。G1继续作为默认垃圾回收器,而ZGC提供了极低的停顿时间,适用于需要非常低停顿时间的应用程序。
请注意,随着Java版本的更新,垃圾回收器的特性和性能也在不断改进。开发者应根据应用程序的具体需求和JVM的性能特性来选择合适的垃圾回收器。此外,JVM的默认垃圾回收器可能会随着新版本的发布而发生变化,因此在使用特定版本的JDK时,最好查阅官方文档以获取最新信息。