JDK 27正式发布:G1成为全场景默认垃圾收集器,新增后量子密钥交换等九大特性

作者: CBISMB

责任编辑: 邹大斌

来源: CBISMB

时间: 2026-09-16 11:53

关键字: 软件开发 Java JDK

浏览: 488

点赞: 23

收藏: 4

Java 开发工具包 27(JDK 27)——这项由 Oracle 主导的标准 Java 计划内更新——现已正式全面可用。这次标准 Java 的最新更新特性众多,既包括让垃圾优先(Garbage-First,G1)垃圾收集器成为默认收集器,也包括添加结构化并发以简化并发编程。

总体来看,JDK 27 的参考实现共列出九项特性。前五项是:G1 成为默认垃圾收集器、面向 TLS 1.3 的后量子混合密钥交换、惰性常量(lazy constants)、结构化并发(structured concurrency),以及模式匹配、`instanceof` 和 `switch` 中的基本类型。后四项是:紧凑对象头(compact object headers)、JFR(JDK Flight Recorder)进程内数据脱敏、矢量 API,以及面向密码学对象的 PEM(Privacy-Enhanced Mail)编码。

JDK 27 可在 jdk.java.net 下载。

G1 成为全环境默认收集器,后量子安全提上日程

在 JDK 27 中,G1 将在所有环境下成为默认垃圾收集器,而不再局限于服务器环境。其目标是确保 HotSpot JVM 始终选择 G1,并保证包括吞吐量、延迟、内存占用和启动时间在内的性能不出现明显下降。

面向 TLS 1.3 的后量子混合密钥交换,目标是通过实现混合密钥交换算法,增强需要安全网络通信的 Java 应用的安全性。这类算法将抗量子算法与传统算法相结合,以防御未来可能出现的量子计算攻击。

语言特性持续演进:惰性常量与结构化并发

惰性常量(lazy constants)引入了一个用于保存不可变数据的对象 API。惰性常量会被 JVM 视为真正的常量,从而获得与声明字段为 `final` 时相同的性能优化。不过与 `final` 字段相比,惰性常量在初始化时机上提供了更大的灵活性。该特性处于第三次预览阶段。

模式匹配、`instanceof` 和 `switch` 中的基本类型,目标是通过允许在所有模式上下文中使用基本类型来增强模式匹配,并扩展 `instanceof` 和 `switch` 使其适用于所有基本类型。该特性处于第五次预览阶段。

结构化并发通过引入一个 API 来简化并发编程——它将运行在不同线程上的相关任务组视为单一的工作单元。其目标包括简化错误处理和取消操作、提高可靠性并增强可观测性。结构化并发目前处于第七次预览阶段。

性能与运维改进:紧凑对象头与 JFR 数据脱敏

JDK 27 让紧凑对象头(compact object headers)成为 HotSpot JVM 中默认的对象头布局。紧凑对象头将对象头从 96 位缩减到 64 位(在 64 位架构上),从而减少堆大小、提升部署密度并增强数据局部性。

JFR 数据进程内脱敏允许用户在 JFR 记录中对命令行参数以及环境变量和系统属性的初始值进行脱敏处理。JFR 记录文件中可能包含敏感数据的事件,例如命令行参数中的密钥、环境变量中的访问令牌以及系统属性中的密码。这些数据会在离开进程之前(可选地)被脱敏,从而避免敏感信息泄露。

矢量 API(vector API)引入了一个用于表达矢量计算的 API,这些计算在运行时能可靠地编译为受支持 CPU 上的最优矢量指令,从而获得优于等效标量计算的性能。这是一个孵化中的 API,目前处于第 12 次孵化阶段。

面向密码学对象的 PEM 编码引入了一个 API,用于将表示密码学密钥、证书和证书吊销列表的对象编码为 PEM 传输格式,以及从 PEM 解码回对象。这是一个预览 API。

JDK 27 是一个短期特性版本(非 LTS),将获得 Oracle 六个月的支持。其前任版本 JDK 26 同样是短期版本,已于今年 3 月 17 日全面可用。

©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。