Java Development Kit 27(JDK 27)是由Oracle主导推进的Java标准版本计划更新,首个发布候选版本(RC)预计于8月6日发布。此次更新涵盖多项重要特性,包括将Garbage-First(G1)垃圾回收器设为默认收集器,以及引入结构化并发以简化并发编程。目前JDK 27已进入降坡阶段二,功能集已正式冻结。

此次JDK 27共列出九项新特性,作为参考实现版本对外呈现。前五项包括:将G1设为默认垃圾回收器、为TLS 1.3添加后量子混合密钥交换、惰性常量、结构化并发,以及在模式匹配、instanceof和switch中支持原始类型。后四项分别为:紧凑对象头、JFR(JDK飞行记录器)进程内数据脱敏、向量API,以及针对加密对象的PEM(隐私增强邮件)编码支持。

JDK 27最终发布候选版本将于8月20日推出,正式版计划于9月15日发布。早期访问构建版本可在jdk.java.net获取。

G1成为全平台默认垃圾回收器

在JDK 27中,G1垃圾回收器将在所有环境下成为默认收集器,而非仅限于服务器环境。此举旨在确保HotSpot JVM始终选用G1,同时保证吞吐量、延迟、内存占用和启动时间等性能指标不出现明显退化。

后量子混合密钥交换增强安全性

针对TLS 1.3的后量子混合密钥交换特性,旨在通过实现混合密钥交换算法,提升需要安全网络通信的Java应用程序的安全性。该算法将抗量子算法与传统算法相结合,以抵御未来量子计算的潜在攻击。

惰性常量引入全新API

惰性常量为持有不可变数据的对象引入了一套API。JVM将惰性常量视为真正的常量,从而能够享有与声明final字段相同的性能优化。但与final字段相比,惰性常量在初始化时机上提供了更大的灵活性。该特性目前处于第三次预览阶段。

原始类型扩展模式匹配能力

在模式匹配、instanceof和switch中支持原始类型,旨在通过允许在所有模式上下文中使用原始类型来增强模式匹配,并将instanceof和switch扩展至支持所有原始类型。该特性目前处于第五次预览阶段。

结构化并发简化多线程编程

结构化并发通过引入一套API,将运行于不同线程中的相关任务组视为单一工作单元,从而简化并发编程。其目标包括简化错误处理与取消机制、提升可靠性并增强可观测性。结构化并发目前处于第七次预览阶段。

紧凑对象头降低内存开销

JDK 27将紧凑对象头设为HotSpot JVM中的默认对象头布局。在64位架构上,紧凑对象头将对象头从96位压缩至64位,从而缩减堆内存占用、提升部署密度并增强数据局部性。

JFR进程内数据脱敏保护敏感信息

JFR进程内数据脱敏功能允许用户对JFR录制文件中的命令行参数、环境变量初始值及系统属性初始值进行脱敏处理。JFR录制文件可能包含敏感数据,例如命令行参数中的密钥、环境变量中的访问令牌以及系统属性中的密码。此类数据将在离开进程前(可选)完成脱敏,防止敏感信息泄露。

向量API优化计算性能

向量API引入了一套用于表达向量计算的接口,这些计算在运行时能够可靠地编译为受支持CPU上的最优向量指令,从而实现优于等效标量计算的性能表现。该API目前处于第12次孵化阶段。

PEM编码支持加密对象处理

加密对象的PEM编码特性引入了一套API,用于将代表加密密钥、证书及证书吊销列表的对象编码为PEM传输格式,并支持从PEM格式解码还原为对象。该特性目前处于预览API阶段。

JDK 27属于短期功能版本(非LTS),Oracle将提供六个月的支持周期。其前代版本JDK 26同样为短期版本,已于今年3月17日正式发布。

Q&A

Q1:JDK 27的正式版什么时候发布?

A:JDK 27计划于2026年9月15日正式发布。在此之前,首个发布候选版本(RC)将于8月6日推出,最终发布候选版本将于8月20日跟进。如需提前体验,可在jdk.java.net获取早期访问构建版本。

Q2:JDK 27中G1垃圾回收器有什么变化?

A:在JDK 27中,G1垃圾回收器将成为所有环境下的默认收集器,而此前它仅在服务器环境中默认启用。此次变更旨在确保HotSpot JVM始终选用G1,同时保证吞吐量、延迟、内存占用和启动时间等关键性能指标不出现明显下滑。

Q3:JDK 27的结构化并发功能有什么用?

A:结构化并发通过将运行于不同线程中的相关任务组视为单一工作单元,来简化并发编程。它提供了一套专用API,目标是简化错误处理与任务取消机制、提升程序可靠性,并增强运行时的可观测性。该特性目前处于第七次预览阶段,尚未正式定型。

InfoWorld