
JDK 25 的目标 JEP
两个 JEP 从 Proposed to Target 状态进入到 Targeted 状态,目标版本为 JDK 25。
JEP 510(密钥派生函数 API),相关公告见这里,提议在经过一轮预览后最终确定该特性,没有发生变更。这一轮预览为在 JDK 24 中交付的 JEP 478(密钥派生函数 API(预览))。该特性引入了一个用于密钥派生函数(KDF)的 API。KDF 是一种从密钥和其他数据派生额外密钥的加密算法,目标包括:允许安全提供者在 Java 或本地代码中实现 KDF 算法,并在 JEP 452(密钥封装机制)的实现中使用 KDF。
JEP 506(作用域值),相关公告见这里,提议在经过四轮预览后最终确定该特性,没有发生变更。这四轮预览分别是:在 JDK 24 中交付的 JEP 487(作用域值(第四轮预览));在 JDK 23 中交付的 JEP 481(作用域值(第三轮预览));在 JDK 22 中交付的 JEP 464(作用域值(第二轮预览));在 JDK 21 中交付的 JEP 446(作用域值(预览));以及在 JDK 20 中交付的 JEP 429(作用域值(孵化))。该特性以前叫作 扩展本地变量(孵化),支持在同一个线程内以及跨线程共享不可变数据。这比线程局部变量更好,尤其是在使用大量虚拟线程时。
JDK 25 的提议目标 JEP
四个 JEP 从 Candidate 状态进入到 Proposed to Target 状态,目标版本为 JDK 25。
JEP 519(紧凑对象头)从 JEP Draft 8354672 状态进入到 Candidate 状态,然后是 Proposed to Target,目标版本为 JDK 25(相关公告分别在这里和这里)。该 JEP 提议将该特性从实验性阶段提升为正式产品特性。受 Project Lilliput 的启发,该特性可以“将 HotSpot JVM 中的对象头大小从 96 到 128 位减少到 64 位,适用于 64 位架构”。关于 JEP 450 的更多详细信息,可以参考 InfoQ 的新闻报道。
JEP 515(提前方法分析,相关公告见这里)提议“在 HotSpot JVM 启动时可以立即使用应用程序之前运行时收集的方法执行分析结果”,以此来缩短应用程序的预热时间。这使得 JIT 编译器能够在应用程序启动时立即生成本地代码,无需等待收集分析结果。
JEP 514(提前命令行易用性,相关公告见这里)提议简化 JEP 483(提前类加载和链接)中描述的创建提前缓存的过程,该过程可以通过“简化常见用例所需的命令”来加速 Java 应用程序的启动。
JEP 507(模式、instanceof 和 switch 中的原始类型(第三轮预览),相关公告见这里)提议进行第三轮预览,以便从之前的两轮预览中获得更多经验和反馈。前面两轮预览分别为:在 JDK 24 中交付的 JEP 488(模式、instanceof 和 switch 中的原始类型(第二轮预览))和在 JDK 23 中交付的 JEP 455(模式、instanceof 和 switch 中的原始类型(预览))。该特性源于 Project Amber,允许在所有模式上下文中使用原始类型模式,并让 instanceof 和 switch 支持所有原始类型,从而增强了模式匹配。更多详细信息可以参考Aggelos Biboudis(Oracle 首席技术成员)编写的草案规范。
它们各自的评审在 2025 年 5 月 22 日结束。
新的候选 JEP
JEP 520(JFR 方法计时与跟踪)已从 JEP Draft 8328610 状态进入到 Candidate 状态,相关公告见这里。该 JEP 提议使用字节码 Instrumentation 接口扩展 JDK Flight Recorder 的方法计时和跟踪功能。
JDK 25 的特性集(迄今为止)和发布计划
由 Oracle Java 平台团队首席架构师 Mark Reinhold 批准的 JDK 25 发布计划如下:
第一阶段降速(从主线分支):2025 年 6 月 5 日
第二阶段降速:2025 年 7 月 17 日
初始候选版本:2025 年 8 月 7 日
最终候选版本:2025 年 8 月 21 日
正式发布:2025 年 9 月 16 日
距离计划的第一阶段降速不到三周的时间,届时 JDK 25 的功能集将被冻结,目前包含以下 13 个 JEP:
JEP 502:稳定值(预览)
JEP 503:移除 32 位 x86 移植版本
JEP 505:结构化并发(第五轮预览)
JEP 506:作用域值
JEP 508:向量 API(第十轮孵化)
JEP 510:密钥派生函数 API
JEP 511:模块导入声明
JEP 512:紧凑源文件和实例主方法
JEP 513:灵活的构造函数体
JEP 514:提前命令行易用性
JEP 515:提前方法分析
JEP 519:紧凑对象头
JDK 25 被指定为继 JDK 21、JDK 17、JDK 11 和 JDK 8 之后的下一个长期支持(LTS)版本。
原文链接:
https://www.infoq.com/news/2025/05/jdk-news-roundup-may12-2025/
评论