写点什么

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:5310

评论

发布
暂无评论

租金、物业费的催收困境,如何解决?

IT资讯搬运工

GaussDB(DWS)如何实现实时,批量和交付式查询一站式开发

乌龟哥哥

8月月更

呐,HTTP接口安全的八种对策送给你了

知识浅谈

HTTP API 8月月更

电商行业:全链路监测广告投放效果,用数据驱动业务增长

HarmonyOS SDK

分析 电商营销

Docker与虚拟化技术浅析第一弹之docker与Kubernetes

京东科技开发者

Docker Kubernetes k8s 虚拟机

算法之“杨辉三角”题解

掘金安东尼

算法 前端 8月月更

翻译|使用 StatefulSet 运行数据库应用

RadonDB

数据库 Kubernetes RadonDB

云原生 SIG:关于 Koordinator 混部原理及最佳实践 | 第 43 期

OpenAnolis小助手

开源 云原生 混部 sig 龙蜥大讲堂

文本纠错:提升OCR任务准确率的方法

合合技术团队

人工智能 文字识别 OCR 合合信息

MobTech ShareSDK 高级接口及配置

MobTech袤博科技

android MobTech袤博科技 sharesdk

开源一夏 | 使用layui框架实战之栅格系统和菜单评分组件运用心得

恒山其若陋兮

开源 8月月更

面试突击77:Spring 依赖注入有几种?各有什么优缺点?

王磊

Java 常见面试题

Go-Excelize API源码阅读(十九)——SetHeaderFooter

Regan Yue

Go 开源 源码解析 8月日更 8月月更

Kubernetes资源编排系列之五: OAM篇

阿里云大数据AI技术

运维 开放应用模型

揭秘百度智能测试在测试分析领域实践

百度Geek说

测试 数据 用例

技术分享| anyRTC 8月更新迭代

anyRTC开发者

音视频 WebRTC 视频通话 实时消息 抓拍图片

何去何从的并行计算

博文视点Broadview

Kubernetes MetalLB 作为 Load Balancer上

CTO技术共享

图灵8月书讯 | 10 本新书上市,本本精选

图灵社区

新书推荐

Kubernetes MetalLB 作为 Load Balancer下

CTO技术共享

架构实战营模块五作业

zhihai.tu

英伟达首席科学家:深度学习硬件的过去、现在和未来

OneFlow

机器学习 深度学习 硬件

云原生(二十四) | Kubernetes篇之Kubernetes 配置

Lansonli

云原生 k8s 8月月更

短视频软件开发:推荐算法没有想象的那么复杂

开源直播系统源码

直播系统 直播系统源码 短视频直播

公众版与政企版,这两款云电脑我都要!

天翼云开发者社区

Linux常用命令

楠羽

解决 NGINX LDAP 参考实施中的安全问题

NGINX开源社区

nginx HTTP 安全漏洞 ldap 身份验证

如何应对软件可变性?这4种常用的方法肯定要知道

华为云开发者联盟

云计算 软件 后端

教你使用Jupyter可视化查询语句的语法树

华为云开发者联盟

人工智能

[JS真好玩] 我帮掘金找到了一个小Bug,可利用该Bug增加专栏粉丝数

HullQin

CSS JavaScript html 前端 8月月更

Rewind the PlanetScale Rewind | 拆解硅谷当红科技公司如何做 Product Marketing

Bytebase

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