本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
【腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
定了,JDK 27 一共 9 个 JEP。
原先有望是 10 个 JEP 的,但其中的一个 JEP 528 最后归到 JDK 28 了。
截止昨天,JDK 27 功能集已正式冻结。接下来,我就来拆解一下这 9 个 JEP 的核心价值,分析 JEP 528 为何退回候选状态,以及这个版本最值得关注的三大看点。
JDK 27 功能冻结
根据 OpenJDK 官方页面,JDK 27 的发布时间表已经确定,对应的计划如下表所示。
| 里程碑 | 日期 |
|---|---|
| Rampdown Phase One 功能冻结 | 2026/06/04 |
| Rampdown Phase Two 只修 bug | 2026/07/16 |
| Initial Release Candidate 首个候选版本 | 2026/08/06 |
| Final Release Candidate 最终候选版本 | 2026/08/20 |
| General Availability 正式发布版 | 2026/09/15 |
截止到昨天,6 月 4 日功能集已冻结,不再接受新的 JEP。这意味着 JDK 27 的“牌面”已经彻底确定,共 9 个 JEP,比 JDK 26 的 10 个略少,但含金量十足。
作为非 LTS 版本,JDK 27 将获得 6 个月的支持周期,下一个 LTS 版本是 2027 年 9 月的 JDK 29。
文章配图参见 https://mp.weixin.qq.com/s/8yEPK1zIyNdIQtGPGXHGvA。
JEP 528 退回候选状态
原本计划包含的JEP 528: Post-Mortem Crash Analysis with jcmd 事后崩溃分析现已退回 Candidate 状态,预计推迟到 JDK 28 发布。
这个 JEP 的目标非常实用:让 jcmd 工具不仅能诊断运行中的 JVM,还能分析已经崩溃的 JVM产生的 core dump 文件。通过“复活”技术,将 core dump 映射到内存中重建 JVM 状态,让 jcmd 的 26 个诊断命令在事后环境中也能工作。
这么好的使用技术,为什么推迟了?
虽然 JEP 528 的技术方案很优雅(避免了维护两套代码,直接复用原生 JVM 函数),但 post-mortem 分析的复杂性意味着需要更多测试和验证。OpenJDK 团队选择稳妥起见,将其推迟到 JDK 28,确保质量。
按照 JDK 现在的尿性,我估计 JDK 28 中还真不一定保证有这个 JEP。
9 个 JEP 全景解析
JEP 523: G1 成为全环境默认 GC
这是 JDK 27 最具标志性的变化。自 JDK 9 起,G1 仅在“服务器环境”(多 CPU + 大内存)下作为默认 GC,单 CPU 或小内存环境(<< 1792MB)仍使用 Serial GC。
这次 JDK 27 做出了改变,无论何种环境,未指定 GC 时一律默认 G1。
为什么现在可以?参考我的这篇文章《https://mp.weixin.qq.com/s/F_bNStJRD7Zo_kiSZKLHRg》。
- JDK 26 的 JEP 522 通过引入双卡表(card table)和原子交换机制,大幅降低了 G1 的同步开销,吞吐量已接近 Serial GC
- G1 的内存占用已优化到与 Serial 相当的水平
- G1 的最大延迟始终优于 Serial(增量回收 vs 全量回收)
需要注意的是,部署到 Kubernetes 这类微服务(512MB 内存限制)时,不再意外获得 Serial GC 的“惊喜”。GC 行为更加统一和可预测。
JEP 534: 紧凑对象头默认启用
JDK 25 中作为实验性功能引入的紧凑对象头(Compact Object Headers),在 JDK 27 正式成为默认布局。
技术细节上,将 64 位架构下的对象头从 12 字节压缩到 8 字节,通过将类指针(Klass pointer)编码到 mark word 中实现。
实际收益非常惊艳,细节可以参考我的这篇文文章《https://mp.weixin.qq.com/s/Rrpv6Q95e5UP56oIbGOhMw》。
- 堆内存占用减少
10-20%(对小对象密集的应用尤其明显) - 更好的 CPU 缓存命中率
零配置:无需任何 JVM 参数,开箱即用
对于创建大量小对象的 Java 应用(这几乎是所有 Java 应用),这相当于是一个免费的性能午餐。
JEP 527: TLS 1.3 后量子混合密钥交换
这是 JDK 27 中唯一的全新永久功能(非预览/孵化),也是 Java 在后量子密码学领域的重要布局。
要知道,量子计算机的发展对现有 RSA/ECDH 加密体系构成根本性威胁。攻击者可能今天就开始“囤积”加密数据,等量子计算机成熟后解密(“先收集,后解密”攻击)。
现在,JDK 27 通过 JEP 527,为 TLS 1.3 引入三种混合密钥交换方案,将抗量子算法与传统算法结合:
X25519MLKEM768(默认最优先)SecP256r1MLKEM768SecP384r1MLKEM1024
细节方面,可以参考我的这篇文章《https://mp.weixin.qq.com/s/Q8cT5PggkO9rsV2oHXQuJw》。
升级 JDK 27 后,使用 javax.net.ssl API 的应用无需任何代码改动,即可自动获得抗量子攻击能力。
JEP 532: 模式匹配中的原始类型(第五预览)
这是 Project Amber 的重要拼图,允许在所有模式匹配上下文中使用原始类型(int, long, double 等),并扩展 instanceof 和 switch 支持原始类型。
经过 JDK 23-26 的四轮预览,该特性已非常成熟,预计将在未来版本转正。
过往预览改动等,可以参考我的这篇文章《https://mp.weixin.qq.com/s/apCxVXPATr7m3wp9Voe2HA》。
JEP 533: 结构化并发(第七预览)
基于 JDK 19-20 的孵化和 JDK 21-26 的多轮预览,结构化并发通过 StructuredTaskScope 将一组相关子任务视为单个工作单元,简化错误处理和取消传播。
对应的,JDK 27 中的改进如下。
- 新增类型参数用于指定
join()方法可能抛出的异常类型 - 新增
open静态方法,支持自定义配置
过往预览改动等,可以参考我的这篇文章《https://mp.weixin.qq.com/s/9e3Sk-7-vaQilSqMxsZFsg》。
JEP 531: 惰性常量(第三预览)
经过 JDK 25-26 的两轮预览,惰性常量在 JDK 27 迎来第三版预览。
本次预览的关键变更如下所示。
- 移除
isInitialized()和orElse()方法(不符合设计目标) - 新增
ofLazy()工厂方法,可为List、Set、Map创建稳定的预定义惰性集合
对应的细节内容,可以参考我的这篇文章《https://mp.weixin.qq.com/s/tXjFe9Oce2dDS59_TAsuLg》。
JEP 537: Vector API(第十二孵化器)
Vector API 继续在孵化器中迭代,提供表达向量计算的 API,编译为 CPU 向量指令以获得超越标量计算的性能。
这是第 12 次预览了,它仍在等待 Project Valhalla 的值类型(Value Types)成为预览特性,届时 Vector API 将从孵化器升级为预览。
更多细节知识,参考我的这篇文章《https://mp.weixin.qq.com/s/iikrasY8poCd-EQvF8-E4w》。
JEP 536: JFR 进程内数据脱敏
这个 JEP 解决了一个长期存在的痛点:JFR 记录文件中可能包含明文敏感信息(数据库密码、API Token、环境变量等)。
JDK 27 的解决方案如下。
- 默认自动脱敏命令行参数、环境变量和系统属性中的敏感数据
- 内置默认过滤器(匹配
*password*,*token*,*secret*等模式) - 支持自定义 glob 模式过滤器
- 脱敏在
进程内完成,数据离开 JVM 前已处理
举例来说,如果包含 --dbpassword SECRET 的启动命令,在 JFR 记录中显示为 --dbpassword [REDACTED]。
更多细节知识内容,参见我的这篇文章《https://mp.weixin.qq.com/s/Lcp9pvGe74eaWlUBAqHiew》。
JEP 538: PEM 编码加密对象(第三预览)
本次预览,引入 API 用于将加密密钥、证书、CRL 编码为广泛使用的 PEM 格式,以及从 PEM 解码。经过三轮预览,API 已趋于稳定。
我预计,这个特性有望在 JDK 28 中正式解封。
更多内容参见《https://mp.weixin.qq.com/s/9e3Sk-7-vaQilSqMxsZFsg》。
总结
总的来说,JDK 27 是一个“润物细无声”的版本。没有颠覆性的语言特性,没有万众期待的 Valhalla 值类型,但它在 JVM 底层、安全基础设施和生产可观测性方面做出了扎实的改进。
G1 全面上位消除了环境差异带来的 GC 不确定性,紧凑对象头免费赠送内存效率,后量子加密为未来的安全威胁提前筑墙,JFR 脱敏堵住了一个长期存在的安全漏洞。
这些改进共同指向一个趋势,Java 平台正在从“提供多种选择”转向“提供合理的默认配置”,降低开发者的决策负担和运维复杂度。
对于我们广大 Java 开发者来说,JDK 27 值得在测试环境尝鲜,而其中的成熟特性(尤其是 G1 默认和紧凑对象头)将为未来的 LTS 版本(JDK 29)奠定坚实基础。
一个非 LTS 版本,除了紧凑对象头转正外,应该没有多少人尝鲜吧,毕竟不少人还在用 Java8 呢。

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » JDK27 冻结定档,9 个 JEP,G1 全面上位、后量子加密落地