写点什么

Java 25 正式发布

  • 2025-09-17
    北京
  • 本文字数:2308 字

    阅读完需:约 8 分钟

大小:1.27M时长:07:23
Java 25 正式发布

甲骨文(Oracle)发布了 Java 编程语言和虚拟机的第 25 版。作为自JDK 21以来的第一个长期支持(LTS)版本,最终特性集包括 18 个 JEP(Java 增强提案),其中 7 个已经最终确定。这些特性中有 9 个专注于性能和运行时。这个最终特性集中的 JEP 包括:

 

JEP 470:PEM编码的加密对象(预览

JEP 502:稳定值(预览)

JEP 503:移除32位x86移植版本

JEP 505:结构化并发(第五次预览)

JEP 506:作用域值

JEP 507:模式、instanceof和switch中的原始类型(第三次预览)

JEP 508:向量API(第十轮孵化)

JEP 509:JFR CPU-Time剖析(实验性)

JEP 510:密钥派生函数API

JEP 511:模块导入声明

JEP 512:紧凑源文件和实例主方法

JEP 513:灵活的构造函数体

JEP 514:提前编译命令行人体工程学

JEP 515:提前编译方法分析

JEP 518:JFR协同抽样

JEP 519:紧凑对象头

JEP 520:JFR方法计时与跟踪

JEP 521:代际Shenandoah

 

其中七个,作用域值、密钥派生函数 API、模块导入声明、紧凑源文件和实例主方法、灵活的构造函数体、紧凑对象头和代际 Shenandoah,在经历了各自的孵化和预览后最终确定,后两个是 JDK 24 中是实验特性。

 

这个版本还专注于性能和运行时,因为这些 JEP 中有九个是在Project LeydenHotSpot JVM的支持下进行的。这包括两个 JEP,提前编译命令行人体工程学和提前编译方法分析,它们加入了 JEP 483,提前编译类加载和链接,这是 Project Leyden 在 JDK 24 中交付的第一个功能。

 

下图展示了自 JDK 8 以来每个 Java 版本中的 JEP 数量,如甲骨文博客文章中所示。

 


我们将研究其中的一些 JEP,讨论 JDK 25 的启动事件,并更新对 JDK 26 中可能包含功能的预测。

 

JFR 方法计时与跟踪

JEP 520,JFR方法计时与跟踪,提议通过字节码`Instrumentation` 接口扩展 JFR,增加方法计时和跟踪的功能。两个新的 JFR 事件, jdk.MethodTimingjdk.MethodTrace ,分别在 MethodTimingEventMethodTraceEvent 类中使用,接受一个过滤器来选择适当的方法进行计时和跟踪。

紧凑对象头

JEP 519,紧凑对象头,提议将这个功能从实验级别提升到产品级别。受Project Lilliput启发,这个功能“将 HotSpot JVM 中对象头的大小从 96 到 128 位减少到 64 位”。关于 JEP 519 的更多细节可以在这篇InfoQ新闻中找到。

 

JFR 合作采样

JEP 518,JFR协同抽样,提议“提高 JDK 飞行记录器 Flight Recorder(JDK Flight Recorder,JFR)异步采样 Java 线程栈时的稳定性。”这是通过在安全点(safepoint)遍历调用栈来实现的,即线程在定义良好的代码位置暂停的点。

 

提前编译(AOT)方法分析

JEP 515,提前编译方法分析,提议通过“使应用程序的前一次运行中的方法执行配置文件在 HotSpot JVM 启动时立即可用”来提高应用程序的预热时间。这允许 JIT 编译器在应用程序启动时立即生成本地代码,而不是等待收集配置文件。

 

提前编译(AOT)命令行人体工程学

JEP 514,提前编译命令行人体工程学,提议简化创建提前编译(AOT)缓存的过程,如 JEP 483,提前编译类加载和链接中所述,这可能通过“简化常见用例所需的命令”来加速 Java 应用程序的启动。

 

JFR cpu 时间剖析(实验性)

JEP 509,JFR CPU-Time剖析(实验性),是这个版本中唯一的新实验性功能,提议增强 JFR 以利用 Linux 内核 CPU 计时器,准确地测量 CPU 周期消耗。这将提供捕获 Java 应用程序 CPU 时间分析信息的能力。

 

JDK 25 发布活动

JDK 25发布活动于 2025 年 9 月 16 日在加利福尼亚州红木海岸的 Oracle 网站进行了直播,内容包括:与 Oracle Java 虚拟机高级总监Mikael Vidstedt一起进行 JDK 21 到 JDK 25 的性能更新;Oracle 高级产品经理Poonam Parhar对 JDK 21 到 JDK 25 的安全更新;与 Oracle Java 开发者关系副总裁Chad Arimura一起介绍 Java AI 库的发展;与 Oracle 的 Java 架构师Paul Sandoz一起进行用于 AI 的 Java 示例演示,包括异构加速器工具包(Heterogeneous Accelerator Toolkit,HAT);与 Oracle Java 平台组软件开发高级副总裁Georges Saab一起发展 Java 平台。还有大量示例演示,展示了Ana-Maria MihalceanuBilly KorandoNicolai Parlog在 JDK 25 中的新功能,他们是 Oracle 的 Java 开发倡导者和直播主持人。

 

JDK 26

预计在 2026 年 3 月进行正式版本发布,目前有三个 JEP(JDK 增强提案)被确定为JDK 26的目标。然而,根据许多 JEP 候选提案和草案,尤其是那些已经提交的,我们可以推测还有哪些 JEP 有可能包含在 JDK 26 中。

 

JEP 522,G1 GC:通过减少同步来提高吞吐量,已被确定为 JDK 26 的目标。这个 JEP 提议减少 G1 垃圾收集器的开销,以改善应用程序线程和 GC 线程之间的同步。

 

JEP 517,HTTP/3 for the HTTP Client API,已被确定为 JDK 26 的目标。这个 JEP 提议“更新 HTTPClient API 以支持 HTTP/3 协议,以便库和应用程序可以与 HTTP/3 服务器交互,而只需最小的代码更改”。

 

JEP 504,移除Applet API,已被确定为 JDK 26 的目标。这个 JEP 提议移除在 JDK 17 中已被弃用的 Applet API,因为 Web 浏览器已不再支持 Applet,它将一直过时。

 

JEP 草案 8358541,TLS 1.3的后量子混合密钥交换,提议使用正在由互联网工程任务组(IETF)起草的TLS 1.3规范中的混合密钥交换,来增强 RFC 8446,传输层安全(TLS)协议版本1.3的实现,与 JEP 496,量子抗性模块-基于块格的密钥封装机制,一起使用,该机制已在 JDK 24 中交付。

 

请注意,JEP 草案可能随时会发生变化。

 

JDK 26的正式发布日期预计将在 2026 年 3 月,很快将由 Oracle Java 平台组首席架构师Mark Reinhold提出。开发者可以期待在 2025 年 12 月初进行特性冻结。

 

有关 JDK 25 中发布的其他 JEP 以及其他草案 JEP 和候选提案的更多详细信息,可以在这篇更详细的InfoQ新闻中找到。

 

JDK 25 现在可以从Oracle下载,预计其他供应商的二进制文件将在未来几天内提供。

 

原文链接:

https://www.infoq.com/news/2025/09/java25-released/

2025-09-17 10:537173

评论 1 条评论

发布
用户头像
AOT应该集成到JDK里,简化编译成本地程序的步骤。
2025-09-18 15:43 · 广东
回复
没有更多了

好好编程-物流项目13【登录认证-shiro实现】

Java 程序员 后端

如何封装原生的-Java-NIO-以及扩展?详细到让你分分钟搞定Netty

Java 程序员 后端

如何用RabbitMQ实现延迟队列

Java 程序员 后端

解决:http: TLS handshake error from *

liuzhen007

11月日更

字节跳动Java面试题精选——算法与数据结构「跳槽面试必备」

Java 程序员 后端

学会5位大牛撰写756页大规模Linux集群架构实践PDF,成功入职华为

Java 程序员 后端

奉劝各位学弟学妹们,该打造你的技术影响力了!

Java 程序员 后端

好好编程-物流项目07【SpringMVC整合】

Java 程序员 后端

字节跳动武汉招聘2000人,这套JAVA面试题被刷爆了

Java 程序员 后端

通过程序来介绍Node.js 的几个文件读写和事件监听API

Regan Yue

nodejs js Node 11月日更

字节面试官:你觉得HTTPS能防止重放攻击吗?

Java 程序员 后端

奉劝那些想把编程学好的学弟学妹们!呕心沥血,袒露心声,掏心掏肺

Java 程序员 后端

好好编程-物流项目04【Mybatis逆向工程】

Java 程序员 后端

如何在本地部署多个Tomcat服务

Java 程序员 后端

JavaScript 中对象处理之Object.freeze 与 Object.seal

devpoint

JavaScript Object 11月日更

040022-week3-design

InfoQ_70156470130f

好险!一入职就遇到MySQL这么大Bug!差点背锅走人!

Java 程序员 后端

如何设计一个高可用系统?简单总结了10来种方法,今天全部告诉你们!

Java 程序员 后端

字节后端开发3+4面,终于拿到秋招第一个offer

Java 程序员 后端

【Promise 源码学习】第四篇 - 翻译并理解 Promise A+ 规范

Brave

源码 Promise 11月日更

如何让Kafka在保证高性能、高吞吐的同时通过各种机制来保证高可用性?

Java 程序员 后端

如何设计一个高性能Elasticsearch mapping

Java 程序员 后端

进击的Java(三)

ES_her0

11月日更

女生适合学编程吗?

Java 程序员 后端

如何给网关设计一款专属的权限控制「责任链设计模式」(1)

Java 程序员 后端

学生管理系统架构设计文档

唐敏

「架构实战营」

Go语言,垃圾回收、三色标记原理,终于能跟面试官扯皮了!

微客鸟窝

垃圾回收 Go 语言 11月日更

好好编程-物流项目01【搭建maven工程】

Java 程序员 后端

如何给网关设计一款专属的权限控制「责任链设计模式」

Java 程序员 后端

如何调优 Java 垃圾收集

Java 程序员 后端

字节后端开发3+4面,终于拿到秋招第一个offer(1)

Java 程序员 后端

Java 25 正式发布_编程语言_Michael Redlich_InfoQ精选文章