Java 27 正式发布:

TLS 1.3 引入后量子混合密钥交换,JDK 27 含 9 项 JEP

· Software_News

甲骨文昨晚宣布 JDK 27 正式发布,面向开发者、企业和终端用户提供。

一同发布的 JDK 27(Java 开发工具包)对应 JSR 402,相当于 Java SE 27 的参考实现。

甲骨文表示,JDK 27 包含 9 项足以单独成为 JEP 的增强,其中 4 项为预览功能,1 项为孵化器功能。JEP(JDK Enhancement Proposal)是 OpenJDK 用于提出和跟踪增强的流程。

安全方面,JEP 527 为 TLS 1.3 引入后量子混合密钥交换,将抗量子算法与传统算法结合,以防御未来量子计算攻击。

使用 javax.net.ssl API 的应用默认受益,无需修改现有代码。新增算法包括 X25519MLKEM768、SecP256r1MLKEM768 和 SecP384r1MLKEM1024。

其中仅 X25519MLKEM768 被放在默认命名组列表最前,成为最优先组。JEP 538 第三次预览引入 PEM 编码 API,可编解码密钥、证书和证书吊销列表。

语言创新方面,JEP 532 第五次预览允许原始类型用于模式匹配、instanceof 和 switch,并加强 switch 支配性检查。

性能方面,JEP 523 将 G1 垃圾收集器设为所有环境的默认收集器,而不再仅限服务器环境。

未指定收集器时,HotSpot JVM 将始终选择 G1。在以往选择 Serial 的场景中,吞吐量、延迟、内存占用和启动时间不应显著下降。

JEP 534 将紧凑对象头设为 HotSpot JVM 默认对象头布局,在 64 位架构上把对象头从 96 位降至 64 位,以降低堆占用、提升部署密度和数据局部性。

库改进方面,JEP 531 第三次预览提供惰性常量 API,用于保存不可修改数据,JVM 将其视为真正常量,性能可与 final 字段相同。

JEP 533 第七次预览简化并发编程,将不同线程中的相关任务组视为单一工作单元,改善错误处理、取消、可靠性和可观测性。

JEP 537 第十二次孵化引入 Vector API,可在支持的 CPU 上于运行时编译为最优向量指令,面向数据分析、AI 推理和科学计算。

工具方面,JEP 536 增强 JDK Flight Recorder,在记录离开进程前对命令行参数、环境变量和系统属性初始值进行脱敏。

除 9 项 JEP 外,JDK 27 还包含数十项非 JEP 改进。ML-KEM 和 ML-DSA 私钥编码更新,相关算法及 X25519、Ed25519 获得性能提升。

新增 jcmd VM.security_properties 命令,可在运行时查看活动安全属性。G1 堆大小调整、C2 和 Vector API 优化、文件与本地 I/O 也有改进。

JSON 线程转储中的线程标识、线程数和进程标识改为 JSON 数字,便于监控工具解析。VM 诊断可报告当前打开的文件描述符数量。

JDK 27 还更新了 CLDR 48.2、ISO-8601 格式、HttpServer 路径匹配和 ServiceLoader 行为等。部分旧选项和功能被移除,包括 JVMCI。

Oracle 表示,JDK 27 是六个月发布节奏下按时交付的第 18 个特性版本。Oracle 将为 JDK 27 提供更新至 2027 年 3 月,随后由 Oracle JDK 28 接替。

Section image

配套产品方面,Helidon 27、JavaFX 27 同步更新。Oracle Java Platform Extension for Visual Studio Code 继续支持最新 JDK 和早期访问构建。

Section image

Oracle Jipher 20 已纳入 Java Verified Portfolio,封装通过 FIPS 140-3 验证的 OpenSSL 加密模块,并支持 ML-KEM、ML-DSA 等。

OCI 成为首个支持 Oracle JDK 27 的云提供商。Oracle Java SE Universal Subscription 现包含 Java Verified Portfolio。

据介绍,OpenJDK 社区贡献者来自阿里巴巴、亚马逊、ARM、谷歌、IBM、微软、英伟达、红帽、SAP 等,独立开发者贡献了 16% 的修复。