阅读,与值得关注的内容Readance

Java 27正式发布,9项JEP齐上阵:G1成默认GC,还把后量子加密带来了

编译 | 苏宓
出品 | CSDN(ID:CSDNnews)

Java 又更新了。

9 月 15 日,Java 27(JDK 27)正式发布。作为 Java 按照每 6 个月一次节奏推出的最新版本,JDK 27 这次没有带来一次大规模的语言语法重构,而是把重点放在了 JVM 性能、内存占用、安全性以及并发编程等基础能力上。

需要注意的是,JDK 27 并不是长期支持版本(LTS)。Oracle 将为其提供 6 个月更新支持,直到 2027 年 3 月由 JDK 28 接替。当前 Java 最新的 LTS 版本仍然是 JDK 25。

整体来看,此次 JDK 27 一共包含 9 个正式纳入 JEP(JDK 增强提案)的特性,其中 4 个仍处于 Preview(预览)阶段,1 个处于 Incubator(孵化器)阶段。

以下是一些值得关注的变化:


G1 终于成为所有环境的默认垃圾收集器

这次最容易影响普通 Java 应用运行方式的变化之一,是 JEP 523:Make G1 the Default Garbage Collector in All Environments。

G1,也就是 Garbage-First 垃圾收集器,并不是新东西。它从 Java 9 开始就已经成为 HotSpot JVM 在服务器环境中的默认垃圾收集器。

但此前在一些资源受限的环境中,例如只有一个 CPU,或者内存低于一定规模的机器,JVM 可能会选择 Serial GC。

JDK 27 改变了这一默认行为。

从现在开始,如果开发者没有在命令行中显式指定垃圾收集器,HotSpot JVM 将统一选择 G1。也就是说,无论运行环境属于服务器还是资源相对有限的设备,默认 GC 都是 G1。

之所以能够做出这次调整,与 G1 本身近年来的持续优化有关。OpenJDK 团队希望,在原本会使用 Serial GC 的场景中切换到 G1 后,吞吐量、延迟、内存占用以及启动时间等指标不会出现明显下降。



在11月20-21日 · 北京万达文华酒店,「2026 奇点智能技术大会 与 C++ 及系统软件技术大会」现场,本文讨论的 AI 编程工具的能力边界、程序员的核心竞争力、研发效能与语言演进等议题,正是本届大会的核心专题——现场 70+ 一线实战技术嘉宾、18 大 AI 与系统软件专题。

📥 扫码免费领取大会历届演讲 PPT 大礼包、Agent 实战训练营录播课——先睹为快👇




对象头从 96 位压到 64 位,紧凑对象头正式默认开启

另一个与 JVM 内存效率直接相关的变化,是 JEP 534:Compact Object Headers by Default。

在 HotSpot JVM 中,每一个 Java 对象除了自身的数据之外,还需要携带对象头(Object Header),其中包含对象相关的运行时信息。

JDK 27 开始,紧凑对象头成为 HotSpot JVM 的默认对象头布局。

在 64 位架构下,紧凑对象头可以把对象头从 96 bit 降至 64 bit。这意味着大量小对象组成的 Java 应用可以减少对象头带来的额外内存开销,从而降低堆内存占用,同时提高部署密度和数据局部性。

这个变化看起来没有新的语法那么显眼,但对于大量创建对象的 Java 服务来说,影响可能比一个新的语言特性更加基础。尤其是在云服务器和微服务环境中,同一台机器需要运行更多服务时,每个对象节省下来的空间累积起来,就可能转化成更高的内存利用率。


Java 开始为“量子时代”提前准备

如果说前两个变化主要针对 JVM 本身,那么 JDK 27 在安全方面最值得关注的更新,就是 JEP 527:Post-Quantum Hybrid Key Exchange for TLS 1.3。

简单来说,Java 27 为 TLS 1.3 增加了后量子混合密钥交换能力。

这里的核心概念是“混合”。传统加密算法依然承担一部分安全保护,而另一部分则使用能够抵御未来量子计算攻击的抗量子算法。两者组合在一起,即使未来量子计算机对传统公钥密码体系构成威胁,也可以提高通信系统的安全性。

对于 Java 开发者而言,一个重要点是:使用 javax.net.ssl API 的应用可以直接受益于这套改进,而不需要修改现有代码。

与此同时,JDK 27 还继续推进 JEP 538:PEM Encodings of Cryptographic Objects。

PEM 是 Privacy-Enhanced Mail 的缩写,如今已经成为非常常见的密钥和证书编码格式。JDK 27 提供新的 API,用于在 Java 对象与 PEM 格式之间进行编码、解码,覆盖加密密钥、证书以及证书吊销列表等对象。

这一特性目前仍处于第三次 Preview。


结构化并发第七次预览

Java 的并发模型也在继续推进。这次的 JEP 533:Structured Concurrency(结构化并发) 已经进入第七次 Preview。

它试图解决的问题并不复杂:当一个任务需要同时启动多个子任务时,开发者通常还需要自己处理这些线程之间的生命周期、异常、取消以及资源清理。

结构化并发希望把一组相关的并发任务当成一个整体来管理。例如,一个请求同时调用多个服务,那么这些子任务可以被组织成一个明确的任务结构。当其中一个任务失败或者整个操作被取消时,相关任务也可以按照统一的生命周期进行处理。

这样做的目标,是让并发代码更容易维护,同时改善异常处理、任务取消以及可观测性,并减少线程泄漏、取消延迟等问题。

不过需要注意,结构化并发在 JDK 27 中依然只是 Preview,并不是最终确定的 Java SE 标准特性。


instanceof、switch 终于可以更自然地处理原始类型

JDK 27 还继续推进 Java 模式匹配能力。

JEP 532:Primitive Types in Patterns, instanceof, and switch 进入第五次 Preview。

它解决的是 Java 模式匹配体系中长期存在的一些限制:让原始类型能够更加统一地参与模式匹配,并让 instanceof 和 switch 支持所有原始类型。

这意味着开发者可以用更加统一的方式处理 int、long、double 等原始类型,而不必因为基本类型与对象类型之间的区别引入额外的转换或特殊处理。

同时,这一 JEP 还进一步收紧了 switch 中的支配关系检查,并完善了“无条件精确性”的定义,让编译器能够发现更多潜在的代码错误。

从 Java 21 开始,模式匹配相关能力就一直是 Java 语言演进的重要方向。JDK 27 更像是在继续补齐这套体系,而不是突然加入一个完全陌生的语法。


Lazy Constants:让常量初始化可以“晚一点”

JDK 27 还带来了 JEP 531:Lazy Constants 的第三次 Preview。

传统 final 字段可以保证值不会被重新赋值,但初始化时机通常仍然受到既有对象创建和类初始化机制的影响。

Lazy Constants 则提供了一种新的 API,让保存不可修改数据的对象可以延迟到真正需要的时候再初始化。

JVM 会把 Lazy Constant 当成真正的常量,从而允许它享受类似 final 字段的优化;与此同时,开发者又可以更加灵活地控制初始化时机。(InfoWorld)

对于大型 Java 应用而言,这类能力的价值主要体现在资源利用和启动效率上,尤其适合需要加载大量配置、数据或其他成本较高对象的应用。


Vector API 继续孵化,已经第 12 次

Java 在高性能计算方向也没有停下来。JEP 537:Vector API 在 JDK 27 中进入第 12 次 Incubator。

Vector API 允许开发者以 Java API 的方式表达向量计算,并让 JVM 在运行时将其编译为目标 CPU 支持的最佳向量指令。

与一次处理一个数据元素的标量计算相比,向量指令可以在一次操作中处理多个数据,因此适合数据分析、科学计算以及 AI 推理等计算密集型场景。

不过,这仍然不是最终版 API。

值得一提的是,JetBrains 对 JDK 27 的介绍也指出,Vector API 在这一版本中没有相较 JDK 26 发生大的 API 变化,它仍处于持续孵化阶段。


JFR 开始主动处理敏感信息

JDK 27 还对开发者经常使用的 JDK Flight Recorder(JFR) 做了一项安全增强。JEP 536:JFR In-Process Data Redaction 允许 JFR 在进程内部对命令行参数、环境变量初始值以及系统属性初始值进行脱敏。

原因很现实。JFR 是 Java 应用诊断和性能分析的重要工具,但诊断信息中有可能包含敏感数据,例如命令行参数中的密钥、环境变量中的访问令牌,以及系统属性中的密码。

JDK 27 可以在这些信息离开进程之前进行脱敏,从而降低敏感数据通过诊断记录泄露的风险。


Java 27 不是“全面大改”的一个版本

如果把 JDK 27 的 9 个 JEP 放在一起看,会发现这一次 Java 的更新其实非常有特点。

它没有试图靠一个巨大的语言特性制造“Java 2.0”,而是在 JVM、并发、内存、安全和开发工具几个长期方向上继续往前推进。Oracle 也特别强调,除了 9 个 JEP 之外,JDK 27 还包含大量没有单独形成 JEP 的改进,例如 ML-KEM、ML-DSA、X25519 和 Ed25519 等密码算法的性能优化,G1 堆大小调整、C2 编译器优化、I/O 改进,以及诊断和运维工具的增强。

因此,对于已经运行在 Java 25 LTS 或其他稳定版本上的企业应用来说,JDK 27 更像是一个提供新能力和提前体验未来 Java 特性的 Feature Release,而不是必须立即升级的版本。

毕竟,它只有 6 个月的支持周期。

如果是希望长期稳定运行的生产环境,目前 Java 的 LTS 主线仍然是 JDK 25;而对于希望提前尝试下一代 JVM、并发模型、安全机制和语言能力的开发者,JDK 27 则提供了不少值得测试的新东西。

从 Java 8 到 Java 17,再到如今的 Java 27,Java 的变化其实越来越不像过去那种“一次发布,几年不动”的模式。

现在的 Java 更像是在一条稳定的流水线上持续迭代:每隔半年加入一批新能力,一部分成熟后正式落地,另一部分则继续以 Preview 或 Incubator 的方式接受开发者检验。

而这或许也是今天 Java 仍然能够保持生命力的一个重要原因。

来源:

https://blogs.oracle.com/java/the-arrival-of-java-27

https://www.infoworld.com/article/4202901/jdk-27-the-new-features-of-java-27.html

https://mail.openjdk.org/archives/list/[email protected]/thread/ORGGLMN75HFEWP7YL3ZLGHLYHVIBJDYT/

图片

从30万亿 Token 到开放真实业务:一家硬件公司的 AI 底气

TextIn xParse「文档觉醒」AI应用创新赛:零门槛打造你的专属AI助手

DeepSeek工程师发文引热议,算子天才也在思考“转业”;携程上架太空旅行船票售价510万;黄仁勋演讲现场接特朗普电话,隔空聊AI|极客头条

AI 写代码越来越快,但真正的瓶颈早已转移:上下文、评测、Review、反馈、组织协作。
11 月 20-21 日,北京万达文华酒店,2026 奇点智能技术大会「AI 原生软件研发:从 Harness 到 Loop」专题,来自腾讯 CodeBuddy&Workbuddy 团队陈秋远、北航杨健、百度 Comate 牛万鹏、滴滴金晶、腾讯任磊达等 7 位一线实践者,从代码大模型到仓库级智能体,从 Feedback Loop 到 Graph Engineering——一条链讲完。

前往微信阅读全文

内容来自公众号,可前往微信查看原文。

查看作者的更多文章 →