DEV Community

[yun]
[yun]

Posted on

Java 27:值得关注的新特性

Java 开发者们,Java 27 即将在本周二(9 月 15 日)正式发布!

Java 每 6 个月一个新版本,虽然节奏很快,但并不是每次更新都值得你停下手里的项目去全量重构。

这篇文章帮大家抓重点

  • 从 9 个 JEP(JDK 改进提案)中,有哪些是直接能下生产的正式特性
  • 哪些默认参数的调整能帮你的 JVM*省内存、提性能、加安全*?
  • 预览与孵化特性(Preview / Incubator)又走到了哪一步?

发布时间:2026 年 9 月 15 日

核心焦点:共计 9 个 JEP(4 个正式特性,5 个预览/孵化特性)


一图看完 Java 27 的主要更新

模块 特性 (JEP) 状态 实际意义
GC 全局默认 G1 GC (JEP 523) 正式 统一内存回收策略,告别资源受限环境下的旧 GC
GC / 内存 Compact Object Headers 默认开启 (JEP 534) 正式 显著降低堆内存与 CPU 开销,减轻 GC 压力
可观察性 JFR 敏感信息默认脱敏 (JEP 536) 正式 保护密码、API Key 等敏感环境变量与 JVM 参数
加密安全 TLS 1.3 后量子混合密钥交换 (JEP 527) 正式 具备抗量子计算攻击能力,面向未来安全
并发/语言 Lazy Constants (JEP 531) 第三预览 简化 API,移除 isInitialized/orElse,新增 setOfLazy
语言 Primitive Type Patterns (JEP 532) 第五预览 原始类型模式匹配持续打磨
并发 Structured Concurrency (JEP 533) 预览 结构化并发 API 细节优化与调整
加密安全 PEM Encodings API (JEP 538) 预览 内置 PEM 编码 API 细节完善
性能计算 Vector API (孵化) 最后一次孵化 准备在 JDK 28 配合 Valhalla 合并进入 Preview

真正影响生产力的 4 大正式更新

统一 GC 策略:G1 GC 成为全局默认 GC (JEP 523)

在之前的版本中,如果在资源受限的环境(如小内存容器或特定单核环境)运行 JVM,平台可能会退回使用 Serial GC 或 Zero GC。

Java 27 通过 JEP 523G1 GC 设置为全局默认垃圾回收器,彻底终结了这一行为差异。

💡 建议:

  • 生产环境的容器镜像在升级 Java 27 后,垃圾回收器的表现将更加一致,不再需要手动强制指定 -XX:+UseG1GC
  • 对于极度微缩的 Serverless 极小内存实例,建议关注升级后的内存占用基线。

更轻的对象头:Compact Object Headers 默认开启 (JEP 534)

紧凑对象头(Compact Object Headers)在 JDK 25 中作为正式功能引入,而在 Java 27 中正式通过 JEP 534 调整为默认启用

这一改动显著降低了对象占据的内存空间,从而直接减轻 CPU 开销与 GC 压力。

💡 提示:

# 在 JDK 27 中已是默认行为,无需显式声明:
# -XX:+UseCompactObjectHeaders
Enter fullscreen mode Exit fullscreen mode
  • 开箱即用:升级即享受更小的堆内存开销。
  • 兼容性排查:若应用深度依赖 JNI 或特定 Unsafe 内存布局,升级测试时需重点关注。

更加安全的可观察性:JFR 敏感信息默认脱敏 (JEP 536)

JEP 536 让 JDK Flight Recorder (JFR) 在默认情况下会自动对日志和事件中的敏感信息进行脱敏(Redaction)处理。

这包括环境变量、JVM 启动参数中的密码(Passwords)、API 密钥(API Keys)等隐私数据。

🔧 自定义脱敏规则:
你还可以通过 JFR 选项自定义过滤规则:

java -XX:FlightRecorderOptions=redact-key=<KeyPattern>,redact-argument=<ArgPattern> -jar app.jar
Enter fullscreen mode Exit fullscreen mode

后量子安全时代:TLS 1.3 后量子混合密钥交换 (JEP 527)

为了应对未来量子计算可能带来的解密风险,Java 27 通过 JEP 527 为 TLS 1.3 引入了抗量子计算攻击的后量子混合密钥交换算法(Post-Quantum Hybrid Key Exchange Algorithms)。

这是 Java 平台为“后量子时代(Post-Quantum World)”做出的一系列底层安全升级之一。


5 大预览与孵化特性进展

除了上述下生产即可受益的改动,Java 27 在预览特性上也做出了不少关键调整:

  1. Lazy Constants(JEP 531 - 第三预览)

    • 删除了 isInitialized()orElse() 方法。
    • 新增了工厂方法 setOfLazy(),使延迟常量的用法更加贴近现代标准。
  2. Primitive Type Patterns(JEP 532 - 第五预览)

    • 保持第五次预览状态,未改变 API,离正式稳定更近一步。
  3. Structured Concurrency(JEP 533 - 预览)

    • 结构化并发 API 迎来若干细节更新,建议使用虚拟线程(Virtual Threads)的高并发应用持续关注 JEP 变更列表。
  4. PEM Encodings API(JEP 538 - 预览)

    • 针对 PEM 编解码 API 进行了深入的重构与调整。
  5. Vector API(最后一次孵化!)

    • Vector API 进入了它的最后一次孵化阶段
    • 官方明确表示:随着 Project Valhalla 的核心特性将在 JDK 28 合并,Vector API 将终于具备成熟条件,在下一个版本(JDK 28)正式升格为 Preview 状态!

升级与行动建议

步骤 建议动作 说明
1️⃣ 测试环境切到 JDK 27 验证业务代码及第三方依赖的兼容性
2️⃣ 内存与性能基准测试 评估默认开启 Compact Object Headers 带来的内存收益
3️⃣ 检查 JFR 审计日志 验证敏感参数脱敏机制是否符合安全合规要求
4️⃣ 评估预览 API 的更新 关注 Lazy Constants 与 Structured Concurrency 的 API 破坏性改动

💬 总结:要不要升 Java 27?

业务场景 建议
新项目 / 边缘服务 直接上 Java 27,体验开箱即用的内存优化与极佳一致性
Java 21 LTS 项目 建议在 staging 环境体验测试,关注 GC 与安全特性
老旧 JDK 版本项目 赶紧规划升级路线,别落后太远!😅

TL;DR — 最推荐关注的 3 大改动

  1. Compact Object Headers 默认开启:省堆内存,减 GC 压力。
  2. G1 GC 全局默认:统一容器化环境下的内存回收表现。
  3. JFR 默认脱敏:安全合规再提升,防止敏感信息泄漏。

你准备好升到 Java 27 了吗?最期待哪个特性?欢迎在评论区聊聊你的实测体验!

Top comments (0)