JDK 25,自JDK 21以来的下一个长期支持(LTS)版本,已经达到了其第二个候选发布版本,正如Oracle的Java平台组首席架构师Mark Reinhold所宣布的那样。主源代码仓库在2025年6月初(减缓阶段第一阶段)分叉到JDK稳定仓库,定义了JDK 25的功能集。严重的错误,如回归或严重的功能问题,可能会得到解决,但必须通过修复请求流程进行批准。根据发布计划,JDK 25将于2025年9月16日正式发布。
最后的18个新功能集,以JEPs的形式,可以分为四个(4)类别:核心Java库,Java语言规范,安全库和HotSpot。
这四个(4)新功能被归类为 核心Java库:
- JEP 502: 稳定值(预览)
- JEP 505: 结构化并发(第五次预览)
- JEP 506: 作用域值
- JEP 508: 向量API(第十个孵化器)
这些新功能中有四个 (4) 被归类在 Java 语言规范中:
- JEP 507: 模式、instanceof和switch中的原始类型(第三次预览)
- JEP 511: 模块导入声明
- JEP 512: 紧凑型源文件和实例主方法
- JEP 513: 灵活的构造函数体
这些新功能中有两个被归类为安全库:
- JEP 470: PEM加密对象编码(预览)
- JEP 510: 密钥派生函数 API
最后,这些新功能中的八项被归类为 热点:
- JEP 503: 移除32位x86端口
- JEP 509: JFR CPU 时间分析(实验性)
- JEP 514: 提前命令行操作
- JEP 515: 运行时方法分析
- JEP 518: JFR 合作采样
- JEP 519: 紧凑型对象头
- JEP 520: JFR 方法计时和跟踪
- JEP 521: 代际 Shenandoah
我们研究了一些新的特性,并包括它们在主要Java项目(- Amber,Loom,Panama,Valhalla 和 Leyden – )的分类,这些项目旨在通过受控合并培养一系列组件,以最终纳入JDK。
安珀计划
JEP 512, 紧凑源文件和实例主方法,提议在 JDK 21 到 JDK 24 这四轮预览后,对这一特性进行最终定型并改善。此特性曾被称为 简单源文件和实例主方法,其目标是 “通过使学生能够在不理解为大型程序设计的语言特性的情况下编写他们的第一个程序,来发展Java语言.” 这个JEP推进了2022年9月的博客文章 铺就上坡路,由Oracle的Java语言架构师 Brian Goetz撰写。Gavin Bierman,Oracle的高级技术专家,已经 发布了这份 规范文档供Java社区审核。
项目 Loom
JEP 506, 作用域值,提议在 JDK 20 到 JDK 24 这四个预览版本和一次孵化版本后,不作修改地最终确定此功能。此功能曾被称为范围局部变量(孵化中),它允许在多个线程之间共享不可变数据。这在使用大量虚拟线程时尤其优于线程局部变量。
巴拿马项目
JEP 508, Vector API(第十个孵化),提出在JDK 24之后的九轮孵化中,没有API更改和重大实现更改,这是JDK 16到JDK 24之间提供的。这个特性引入了一个API,用于“在支持的CPU架构上,可靠地在运行时编译为最佳向量指令,从而实现优于等效标量计算的性能。” 向量API将继续孵化,直到Project Valhalla的必要功能称为预览功能。到时候,向量API团队将调整向量API及实则现,以使用这些功能,并将向量API从孵化提升到预览输入:.
莱登计划
JEP 515, 提前方法分析,提出通过”在HotSpot JVM启动时,从应用程序的先前运行中即时获取方法执行分析,从而改善应用程序的预热时间。”“ 这使得JIT编译器在应用程序启动时可以立即生成本地代码,而不是等待分析被收集。”
JEP 514, 编译时命令行操作,提议简化创建编译时缓存的过程,如JEP 483中所述,编译时类加载和链接,这可能会通过简化常见用例所需的命令来加速Java应用程序的启动。
安全库
JEP 510, 密钥派生函数 API,提议在一轮预览后,即:JEP 478, 密钥派生函数 API(预览),发布在 JDK 24 中,完成此功能。该功能引入了一个用于密钥派生函数 (KDFs) 的 API,这些加密算法可以从秘密密钥和其他数据派生附加密钥,目标是:允许安全供应商用 Java 或原生代码实现 KDF 算法;并使 KDFs 能够在 JEP 452,密钥封装机制的实现中使用。
热点
JEP 519, 紧凑对象头部,提议将此功能从实验阶段推广到产品阶段。受 小人国项目的启发,此功能”将HotSpot JVM中对象头部的大小从64位架构上的96到128位减少到64位。” 更多关于JEP 519的详细信息,请参阅此InfoQ 新闻报道。
JDK 26
计划于2026年3月进行GA发布,目前针对JDK 26有一个(1)JEP。不过,基于多个JEP候选者和草稿,特别是那些已经提交或增量预览的JEP,我们可以推断出哪些JEP有潜力被包含在JDK 26中。
JEP 504, 移除Applet API,已被定位至JDK 26。此JEP提议移除Applet API,该API在JDK 17中已过时,由于网页浏览器不再支持Applet,其继续存在已无必要。
JEP 517, HTTP/3 for the HTTP Client API, 提议更新 JEP 321, HTTP Client, 在 JDK 11 中发布,以支持 HTTP/3 协议。这将允许应用程序和库与 HTTP/3 服务器交互,并在最少的代码更改下获得 HTTP/3 的好处。
JEP Draft 8359894, 稳定值(第二次预览),提出在第一轮预览之后进行第二次预览,即:JEP 502,稳定值(预览)。之前称为计算常量(预览),该功能引入了计算常量的概念,定义为最多初始化一次的不可变值持有者。这提供了final字段的性能和安全性优势,同时提供了更灵活的初始化时间。
JEP Draft 8360563, PEM Encodings of Cryptographic Objects (Second Preview), 提议进行第二次预览,以允许在第一轮预览后有更多时间收集额外的反馈和经验,即:JEP 470: PEM Encodings of Cryptographic Objects (Preview). 该功能提供 “一个用于将表明加密密钥、证书和证书撤销列表的对象编码成广泛使用的隐私增强邮件(PEM)传输格式,并从该格式解码回对象的API。” 本JEP将支持PEM文本和加密对象之间的转换在 PKCS #8 和 X.509 二进制格式之间。
JEP Draft 8349536, 准备最终平均值, 提议准备Java生态系统,该生态系统将不 允许对声明的字段进行突变 final 通过深度反射,一般使用 setAccessible() 类中定义的方法 AccessibleObject 来实现。
请注意,JEP草案可能会在任何时候发生变化。我们预计Oracle将很快开始为JDK 26制定更多的JEP目标。


















- 最新
- 最热
只看作者