写点什么

Java 近期新闻:TornadoVM 7.0、Groovy 6.0、GraalVM、Hibernate、Quarkus、Gradle、Maven

作者:Michael Redlich
  • 2026-10-10
    北京
  • 本文字数:2820 字

    阅读完需:约 9 分钟

AI摘要

JDK 28 将集成 JEP 544(提前代码编译),显著缩短启动与预热时间;JEP 545 和 JEP 546 分别推进 ZGC 在启动优化与自适应堆调优方向的增强。三者均进入更高成熟度阶段,体现 JVM 性能优化重心向冷启动与资源弹性迁移。

JEP 544 支持 HotSpot 启动即用优化后原生代码

JEP 545 提升 ZGC 内存准备效率以加速预热

JEP 546 实现 ZGC 基于多维负载的动态堆大小调整

适合 JVM 开发者、Java 平台架构师、高并发服务性能工程师阅读

OpenJDK

JEP 544(提前代码编译)已经从候选阶段提升至 Proposed to Target 阶段,并被列为 JDK 28 的目标功能。该 JEP 旨在缩短应用程序的启动和预热时间,使其在 HotSpot JVM 上启动时可以直接使用经过优化的原生代码。这样,应用程序能够更快地达到峰值性能,并保持这一性能水平。评审工作已于 2026 年 9 月 28 日星期一结束。

JEP 546(ZGC 自适应堆大小调整)已经从 JEP Draft 8377305 阶段提升至候选阶段。该 JEP 提议“增强 Z 垃圾回收器,使其能够根据可用的资源、应用程序的需求以及与该应用程序争夺相同资源的邻近应用程序的需求,自适应地调整堆的大小。”

JEP 545(利用 ZGC 加快启动和预热)已经从 JEP Draft 8329758 阶段提升至候选阶段。该 JEP 提议“通过增强 Z 垃圾回收器,使其能够更快速、更高效地根据应用程序的需求获取和准备物理内存,从而改善应用程序的启动和预热过程。”

JDK 28

JDK 28 的早期访问构建 Build 17 发布,它是 Build 16 的升级,修复了各种问题。要了解关于这个构建的更多细节,请参阅发布说明。

对于 JDK 28,欢迎开发者通过 Java Bug 数据库报告 Bug。

GraalVM

GraalVM 25.4 发布,带来了以下值得注意的变化:作为额外的编译器配置优化,新增 PullThroughPhiPhase 和 DuplicationPhase 类;对 OptimizeDivPhase 类进行了扩展,其中包括针对无符号整数除法和余数运算(除以常量值)的魔数优化。要了解有关该版本的更多详细信息,请参阅发布说明。

Oracle Labs 还发布了适用于 Micronaut 的 Graal 开发工具包 5.1.5 版。该版本与 Micronaut 5.1.5 保持兼容。它的前身为 Graal Cloud Native,提供了一套经过精心筛选的 Micronaut 框架模块,旨在简化云应用程序的开发。这些模块设计为可以使用 GraalVM Native Image 进行预编译,并得到了 Oracle 的全面支持。要了解有关该版本的更多详细信息,请参阅发布说明。

TornadoVM

TornadoVM 7.0.0 发布,带来了 Bug 修复和一些新功能:新增 TileContext 类,用于补充现有的 KernelContext 类;新增使用 Java 编写 GPU 核函数的 @Parallel 注解;改进 FloatAtomicFail 类中定义的 testFloatAtomicAddOpenCL() 方法,防止在存在间歇性故障的 CUDA 后端上运行该测试。要了解有关该版本的更多详细信息,请参阅 7.0.1 版本和 7.0.0 版本的发布说明。

Jakarta EE

在每周博客 Hashtag Jakarta EE 中,Eclipse 基金会 Jakarta EE 开发大使 Ivar Grimstad 介绍了 Jakarta EE 12 的最新进展,他写道:

Jakarta EE 平台项目正在为即将发布的 Jakarta EE 12 Core Profile 做准备。按照计划,该规范将在 12 月 1 日的 JakartaOne 直播活动之前发布。规范文档目前正在更新当中,Jakarta CDI 5.0 已经发布,JSON 规范基本就绪,而 Jakarta REST 也即将发布一个里程碑版本。欢迎参加每周的 Jakarta EE 平台电话会议,及时了解最新进展。

一项名为 Jakarta CRaC 的新规范现在已经公开进行社区评审。在即将举行的创建评审投票之前,开发者可以借此机会提供反馈意见。

Spring Framework

对 Spring 团队来说,这是忙碌的一周,各团队相继发布了以下项目的第二个里程碑版本:Spring Boot、 Spring Batch、 Spring Security、 Spring AMQP、 Spring Integration、 Spring Data、 Spring Framework、 Spring for GraphQL 和 Spring for Apache Kafka。此外,Spring AI、 Spring Cloud、 Spring Web Services 和 Spring LDAP 也发布了首个里程碑版本。InfoQ 随后将发布更详细的新闻报道。

Apache Groovy

经过三个候选版本后,Apache Groovy 6.0 正式版(GA)带来了 Bug 修复、依赖项升级以及一项新功能。该功能通过以下方式提升了词法分析器和语法分析器的性能:将数字字面量片段扁平化为字符类; 将 ASCII 标识符拆分为不含谓词的确定性有限自动机(DFA)路径;用直接字符检测替换基于正则表达式的词法分析谓词;对注解元素值进行门控,防止 AdaptivePredict 探索赋值表达式。要了解有关该版本的更多详细信息,请参阅发布说明。

Open Liberty

Open Liberty 26.0.0.10 Beta 测试版提供了对 JDK 27 的 Beta 支持。开发者需要注意,由于 G1 现在已经成为所有环境的默认垃圾回收器,在资源受限环境中运行 Open Liberty 的用户可能会遇到与早期 Java 版本不同的垃圾回收行为。

Quarkus

Quarkus 3.39.5 版本发布,修复了 32 个 CVE。这些漏洞影响了 Quarkus 生态系统中的众多技术。正如 Quarkus 团队所承认的那样:

是的,数量确实很多。如今,人工智能发现了大量的 CVE,而 Quarkus 整合了大量的组件。

这些 CVE 修复方案已经回溯应用到 3.33 和 3.37 系列版本中。要了解有关该版本的更多详细信息,请参阅发布说明。

Hibernate

Hibernate ORM 8.0 的第二个 Beta 测试版(以及随后的第三个 Beta 测试版)带来了以下值得注意的变更:扩展了对 Jakarta Persistence 4.0-M4 的支持,其中包括使用新的 @PostCreate 和 @PreClose 注解,使监听器可以观察实体管理器和智能代理的生命周期;为 StatelessSession 和 EntityAgent 接口添加了版本锁定功能,以便提升并发性。要了解有关该版本的更多详细信息,请参阅 8.0.0.Beta3 版和 8.0.0.Beta2 版的发布说明。

Micrometer

Micrometer Metrics 1.18.0 的第二个里程碑版本带来了 Bug 修复、文档改进、依赖项升级以及一些新功能,包括:改进 MultiGauge 类,在发生覆写时不需要再移除并重新注册 Gauge 接口的实例;配置 JmsProcessObservationConvention 和 JmsPublishObservationConvention 接口自定义实例的能力。要了解有关该版本的更多详细信息,请参阅发布说明。

Micrometer Tracing 1.8.0 的第二个里程碑版本带来了文档改进、依赖项升级以及一项新功能。该功能可以在未配置远程字段时优化来自 OpenTelemetry 的 baggage 传播。由于 OpenTelemetry 在 1.65.0 版本发布时已经停止支持 Zipkin 导出器,所以该功能已被标记为弃用。要了解有关该版本的更多详细信息,请参阅发布说明。

Gradle

Gradle 9.8.0 发布,带来了以下新功能:在 Gradle 守护进程和 Java 工具链中支持 Java 27;通过一个简单的标志即可复用 Maven 镜像仓库设置;通过将 Copy 和 Sync 任务暴露给 DirectoryProperty 接口的实例,改进了构建编写体验;在 Windows 操作系统上的性能提升了 45%。要了解有关该版本的更多详细信息,请参阅发布说明。

Apache Maven

Apache Maven 4.0 的第七个候选版本 修复了 RC6 中的大量 Bug,改进了文档,升级了依赖项,并引入了一些新功能,包括:新增 AsyncDrainWriter 类,其中包含一个非阻塞的 tryLock() 方法,用于通过无锁的 ConcurrentLinkedQueue 封装 Consumer 接口的实例;此外,为了提升性能,该版本还对 DefaultGraphBuilder 和 PhaseComparator 类进行了优化。GA 版本将在“在接下来的几周内,待社区反馈后”正式发布。因此,这个版本预计是这之前的最后一个版本。要了解有关该版本的更多详细信息,请参阅发布说明。

原文链接:https://www.infoq.com/news/2026/09/java-news-roundup-sep21-2026/