JDK 27 延续性能优化:默认启用紧凑对象头,每对象头从 12 字节降至 8 字节;G1 成为所有环境的默认垃圾回收器;HashMap、AttributedString、URL、文件输出及 AES、SHA-3 等加密代码均有提速;C2 编译器增强向量化与常量折叠。升级时建议逐项测试新默认值。
JDK 27于2026年9月15日发布,包含9项JEP。重点包括:JEP 527默认启用TLS 1.3后量子混合密钥交换,无需代码改造即可防御“先收集后解密”威胁;JEP 534默认启用紧凑对象头,堆内存平均节省约20%;JEP 523将G1设为默认GC;JEP 536支持JFR写入前脱敏敏感信息。另有PEM编解码、惰性常量、结构化并发等预览特性。JEP 528进程复活诊断延期至JDK 28。升级需注意内置HttpServer路径匹配变更及JVMCI移除等风险。
JDK 27发布,核心更新为紧凑对象头,将对象头从96位压缩至64位,堆内存最多节省三成;G1成为全域默认回收器,小容器用户需留意GC行为变化;新增量子安全TLS混合密钥交换与JFR自动脱敏,均零代码生效。结构化并发第七次预览、向量API第十二次孵化仍未定稿。升级前建议压测堆内存、GC暂停与吞吐量。
JDK 27 将 G1 设为所有环境的默认垃圾回收器,小容器不再自动使用 Serial GC;紧凑对象头默认启用,对象头由 12 字节降至 8 字节以节省内存;JFR 默认对密码、令牌等敏感信息脱敏;移除 JVMCI,影响 Graal 相关项目;jcmd 新增安全属性查询;删除多个旧参数;G1 堆伸缩默认关闭;JSON 线程转储字段改为数字。
JDK 27 运行时更新:G1 成为所有环境的默认垃圾收集器,紧凑对象头默认启用以减少约20%堆占用,JFR 默认脱敏敏感信息,jcmd 新增安全属性查询、文件描述符统计和 Bash 补全,移除多个旧 JVM 参数及 JVMCI,G1 堆扩缩容默认禁用。
Java每次发布都会带来性能和运行时的更新。对于从Java 21迁移到25的组织,了解所有变化需要查阅大量发布说明。Billy Korando总结了重要的性能和运行时更新,包括紧凑对象头、ZGC和JFR的改进。
Java 25通过JEP 519引入紧凑对象头,将对象头大小从12字节减少至8字节,提升性能并节省内存,最高可减少30% CPU使用。该功能无需修改代码,适用于小对象较多的场景,显著提高内存效率和垃圾回收性能。
JEP 450(紧凑对象头)计划在JDK 24中发布,旨在通过缩小HotSpot中对象头的大小来优化堆利用率,减少堆大小,提高部署密度和数据局部性。新实现将标记字和类字合并为一个64位字,支持约400万个类类型。测试显示许多工作负载的吞吐量有所提升,预计2025年3月发布。
完成下面两步后,将自动完成登录并继续当前操作。