hostspot的默认垃圾回收器

在 Java 中,HotSpot 虚拟机默认的垃圾回收器(Garbage Collector, GC)取决于 Java 版本和运行环境。以下是不同 Java 版本中 HotSpot 虚拟机的默认垃圾回收器:

  1. Java 8 及更早版本

    • 并行垃圾回收器(Parallel GC):在 Java 8 及更早版本中,HotSpot 虚拟机的默认垃圾回收器是并行垃圾回收器(也称为吞吐量垃圾回收器)。它使用多线程进行年轻代和老年代的垃圾回收,适合多核处理器环境。
    • 新生代使用标记复制算法,老年代使用标记整理算法
  2. Java 9 到 Java 18

    • G1 垃圾回收器(Garbage-First GC):从 Java 9 开始,HotSpot 虚拟机的默认垃圾回收器变为 G1 垃圾回收器。G1 是一种面向服务端应用的垃圾回收器,旨在提供更可预测的停顿时间(低延迟)和更高的吞吐量。该垃圾收集器把堆划分成多个大小相等的独立区域(Region)来进行垃圾回收,并且可以动态调整区域的大小,空间可以单独进行垃圾回收。
    • 初始标记:标记与GC roots直接关联的对象。
    • 并发标记:可达性分析。
    • 最终标记,对并发标记过程中,用户线程修改的对象再次标记一下。
    • 筛选回收:对各个Region的回收价值和成本进行排序,然后根据用户所期望的GC停顿时间制定回收计划并回收。
  3. Java 19 及更高版本

    • ZGC(Z Garbage Collector)Shenandoah GC:在某些情况下,Java 19 及更高版本可能会默认使用 ZGC 或 Shenandoah GC,具体取决于运行环境和配置。ZGC 和 Shenandoah 都是低延迟垃圾回收器,旨在将停顿时间控制在毫秒级别,适合对延迟敏感的应用。

如何查看当前使用的垃圾回收器

你可以通过以下命令查看当前 Java 虚拟机使用的垃圾回收器:

java -XX:+PrintCommandLineFlags -version

输出中会显示当前使用的垃圾回收器相关的 JVM 参数。

总结

  • Java 8 及更早版本:默认使用 Parallel GC
  • Java 9 到 Java 18:默认使用 G1 GC
  • Java 19 及更高版本:可能默认使用 ZGCShenandoah GC,具体取决于配置。

如果你有特定的性能需求,可以根据应用场景选择合适的垃圾回收器并进行配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贝多芬也爱敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值