摘要:JDK 26",自JDK 25"以来的第一个非长期支持(LTS)版本,已经达到了其二号候选版本,正如甲骨文公司Java平台组首席架构师Mark Reinhold"所宣布的那样。根据发布计划",JDK 26将于2026年3月17日正式发布。nbsp;JDK 27 计划于2026年9月发布GA版本,目前JDK 27"只针对一(1)个JEP。
JDK 26",自JDK 25"以来的第一个非长期支持(LTS)版本,已经达到了其二号候选版本,正如甲骨文公司Java平台组首席架构师Mark Reinhold"所宣布的那样。主干源代码库在2025年12月初被分支到JDK稳定化代码库"(Rampdown阶段1),它定义了JDK 26的特性集。关键缺陷,如回归或严重的功能问题,可能会被解决,但必须通过修复请求"流程获得批准。根据发布计划",JDK 26将于2026年3月17日正式发布。
最终的10个新特性集,以JEP的形式,可以分为五(5)类:核心Java库、热点、Java语言规范、安全库和客户端库。
其中五个(5)个新特性被归类为核心Java库:
JEP 500:让Final名副其实(Prepare to Make Final Mean Final)"JEP 517:面向HTTP Client API的HTTP/3(HTTP/3 for the HTTP Client API)"JEP 525:结构化并发(Structured Concurrency,第六轮预览)"JEP 526:延迟常量(Lazy Constants,第二轮预览)"JEP 529:向量API(Vector API,第十一轮孵化)"
其中两个(2)个新特性被归类为HotSpot:
JEP 516:适用于任何GC的Ahead-of-Time对象缓存(Ahead-of-Time Object Caching with Any GC)"JEP 522:G1 GC:通过减少同步提高吞吐量(G1 GC: Improve Throughput by Reducing Synchronization)"
其中有一个(1)个新特性被归类为Java语言规范:
JEP 530:模式、instanceof和switch中的原始类型(Primitive Types in Patterns, instanceof, and switch,第四轮预览)"
其中有一个(1)个新特性被归类为安全库:
JEP 524:加密对象PEM编码(PEM Encodings of Cryptographic Objects,第二轮预览)"
最后,有一个(1)个新特性被归类为客户端库:
JEP 504:移除Applet API(Remove the Applet API)"
我们研究了其中的一些新特性,和它们所属主要Java项目——Amber"、Loom"、Panama"、Valhalla"和Leyden",这些项目旨在孵化一系列组件,最终通过精心策划的合并到JDK中。
JEP 530,模式、instanceof和switch中的原始类型(Primitive Types in Patterns, instanceof, and switch,第四轮预览)",提出了第四次预览,此前三次预览分别在JDK 25至JDK 23中交付。本次包括两项变更:增强无条件精确性的定义;以及在switch结构中应用更严格的支配性检查。
JEP 525,结构化并发(Structured Concurrency,第六轮预览)",在JDK 19至JDK 25中交付的五轮预览之后,提出了第六轮预览。这个功能通过引入结构化并发的概念来简化并发编程,将“在不同线程中运行的一组相关任务视为一个工作单元,从而简化错误处理和取消,提高可靠性,并增强可观测性。”唯一的重大变更是向 StructuredTaskScope.Joiner 接口添加了 onTimeout() 方法,允许该接口的实现在超时后返回结果。
JEP 529,向量API(Vector API,第十一轮孵化)",在JDK 16至JDK 25中交付的十轮孵化之后,提出了第十一轮孵化,自JDK 25以来没有实质性的实现变更。这个功能引入了一个API,用于“表达在支持的CPU架构上可靠地在运行时编译为最佳向量指令的向量计算,从而实现优于等效标量计算的性能。”向量API将继续孵化,直到项目Valhalla"的必要功能作为预览功能可用。届时,向量API团队将调整向量API及其实现以使用它们,并将向量API从孵化阶段提升到预览阶段。
JEP 524,加密对象PEM编码(PEM Encodings of Cryptographic Objects,第二轮预览)",在JDK 25中交付的第一轮预览,即JEP 470,加密对象的PEM编码(预览")之后,提出了第二轮预览。变更包括:将 PEMRecord 类重命名为 PEM ;以及增强 PEMEncoder 和 PEMDecoder 类以支持 KeyPair 和 PKCS8EncodedKeySpec 类的加密和解密。
JEP 522,G1 GC:通过减少同步提高吞吐量(G1 GC: Improve Throughput by Reducing Synchronization)",提议减少G1垃圾收集器的开销,以改善应用程序线程和GC线程之间的同步。
JEP 516,适用于任何GC的Ahead-of-Time对象缓存(Ahead-of-Time Object Caching with Any GC)",提议增强JEP 483,任何GC的提前类加载和链接,该功能在JDK 24中交付,以改善启动和预热时间,使其可以与任何垃圾收集器一起使用,包括低延迟的Z垃圾收集器(ZGC)。
计划于2026年9月发布GA版本,目前JDK 27"只针对一(1)个JEP。但是,根据大量的JEP候选和草稿,特别是那些已经提交的或增量预览版,我们可以推测哪些JEP有可能包含在JDK 27中。
JEP 401,值类和对象(Value Classes and Objects,预览版)",在Valhalla"项目的支持下,提议通过值对象增强语言,这些值对象定义为:只包含final字段;没有身份;并且仅由它们各自字段的值来区分。
JEP草案8376595,延迟常量(Lazy Constants,第三次预览)",在JDK 26和JDK 25即将发布的两轮预览之后,提出了第三轮预览,并包含两项变更:从 LazyConstant 接口中移除 isInitialized() 和 orElse() 方法,因为它们与此功能的设计目标不一致;以及一个新的工厂方法 ofLazy() ,它可以为所有三种Java集合类型创建稳定的、预定义的元素,即: List 、 Set 和 Map 。
JEP草案8329758,使用ZGC实现更快的启动和预热(aster Startup and Warmup with ZGC)",提议增强Z垃圾收集器,以更有效地根据应用程序的需求分配内存。通过创建一个小型的初始堆来减少操作系统的开销,可以最小化启动时间。
请注意,草案JEP可能会随时更改。我们预计甲骨文公司将很快开始针对JDK 27的目标,增加额外的JEP。
原文链接:
https://www.infoq.com/news/2026/02/java-26-so-far/"
JDK 26",自JDK 25"以来的第一个非长期支持(LTS)版本,已经达到了其二号候选版本,正如甲骨文公司Java平台组首席架构师Mark Reinhold"所宣布的那样。主干源代码库在2025年12月初被分支到JDK稳定化代码库"(Rampdown阶段1),它定义了JDK 26的特性集。关键缺陷,如回归或严重的功能问题,可能会被解决,但必须通过修复请求"流程获得批准。根据发布计划",JDK 26将于2026年3月17日正式发布。
最终的10个新特性集,以JEP的形式,可以分为五(5)类:核心Java库、热点、Java语言规范、安全库和客户端库。
其中五个(5)个新特性被归类为核心Java库:
JEP 500:让Final名副其实(Prepare to Make Final Mean Final)"JEP 517:面向HTTP Client API的HTTP/3(HTTP/3 for the HTTP Client API)"JEP 525:结构化并发(Structured Concurrency,第六轮预览)"JEP 526:延迟常量(Lazy Constants,第二轮预览)"JEP 529:向量API(Vector API,第十一轮孵化)"
其中两个(2)个新特性被归类为HotSpot:
JEP 516:适用于任何GC的Ahead-of-Time对象缓存(Ahead-of-Time Object Caching with Any GC)"JEP 522:G1 GC:通过减少同步提高吞吐量(G1 GC: Improve Throughput by Reducing Synchronization)"
其中有一个(1)个新特性被归类为Java语言规范:
JEP 530:模式、instanceof和switch中的原始类型(Primitive Types in Patterns, instanceof, and switch,第四轮预览)"
其中有一个(1)个新特性被归类为安全库:
JEP 524:加密对象PEM编码(PEM Encodings of Cryptographic Objects,第二轮预览)"
最后,有一个(1)个新特性被归类为客户端库:
JEP 504:移除Applet API(Remove the Applet API)"
我们研究了其中的一些新特性,和它们所属主要Java项目——Amber"、Loom"、Panama"、Valhalla"和Leyden",这些项目旨在孵化一系列组件,最终通过精心策划的合并到JDK中。
Amber项目
JEP 530,模式、instanceof和switch中的原始类型(Primitive Types in Patterns, instanceof, and switch,第四轮预览)",提出了第四次预览,此前三次预览分别在JDK 25至JDK 23中交付。本次包括两项变更:增强无条件精确性的定义;以及在switch结构中应用更严格的支配性检查。
Loom项目
JEP 525,结构化并发(Structured Concurrency,第六轮预览)",在JDK 19至JDK 25中交付的五轮预览之后,提出了第六轮预览。这个功能通过引入结构化并发的概念来简化并发编程,将“在不同线程中运行的一组相关任务视为一个工作单元,从而简化错误处理和取消,提高可靠性,并增强可观测性。”唯一的重大变更是向 StructuredTaskScope.Joiner 接口添加了 onTimeout() 方法,允许该接口的实现在超时后返回结果。
Panama项目
JEP 529,向量API(Vector API,第十一轮孵化)",在JDK 16至JDK 25中交付的十轮孵化之后,提出了第十一轮孵化,自JDK 25以来没有实质性的实现变更。这个功能引入了一个API,用于“表达在支持的CPU架构上可靠地在运行时编译为最佳向量指令的向量计算,从而实现优于等效标量计算的性能。”向量API将继续孵化,直到项目Valhalla"的必要功能作为预览功能可用。届时,向量API团队将调整向量API及其实现以使用它们,并将向量API从孵化阶段提升到预览阶段。
安全库
JEP 524,加密对象PEM编码(PEM Encodings of Cryptographic Objects,第二轮预览)",在JDK 25中交付的第一轮预览,即JEP 470,加密对象的PEM编码(预览")之后,提出了第二轮预览。变更包括:将 PEMRecord 类重命名为 PEM ;以及增强 PEMEncoder 和 PEMDecoder 类以支持 KeyPair 和 PKCS8EncodedKeySpec 类的加密和解密。
HotSpot
JEP 522,G1 GC:通过减少同步提高吞吐量(G1 GC: Improve Throughput by Reducing Synchronization)",提议减少G1垃圾收集器的开销,以改善应用程序线程和GC线程之间的同步。
JEP 516,适用于任何GC的Ahead-of-Time对象缓存(Ahead-of-Time Object Caching with Any GC)",提议增强JEP 483,任何GC的提前类加载和链接,该功能在JDK 24中交付,以改善启动和预热时间,使其可以与任何垃圾收集器一起使用,包括低延迟的Z垃圾收集器(ZGC)。
JDK 27
计划于2026年9月发布GA版本,目前JDK 27"只针对一(1)个JEP。但是,根据大量的JEP候选和草稿,特别是那些已经提交的或增量预览版,我们可以推测哪些JEP有可能包含在JDK 27中。
JEP 401,值类和对象(Value Classes and Objects,预览版)",在Valhalla"项目的支持下,提议通过值对象增强语言,这些值对象定义为:只包含final字段;没有身份;并且仅由它们各自字段的值来区分。
JEP草案8376595,延迟常量(Lazy Constants,第三次预览)",在JDK 26和JDK 25即将发布的两轮预览之后,提出了第三轮预览,并包含两项变更:从 LazyConstant 接口中移除 isInitialized() 和 orElse() 方法,因为它们与此功能的设计目标不一致;以及一个新的工厂方法 ofLazy() ,它可以为所有三种Java集合类型创建稳定的、预定义的元素,即: List 、 Set 和 Map 。
JEP草案8329758,使用ZGC实现更快的启动和预热(aster Startup and Warmup with ZGC)",提议增强Z垃圾收集器,以更有效地根据应用程序的需求分配内存。通过创建一个小型的初始堆来减少操作系统的开销,可以最小化启动时间。
请注意,草案JEP可能会随时更改。我们预计甲骨文公司将很快开始针对JDK 27的目标,增加额外的JEP。
原文链接:
https://www.infoq.com/news/2026/02/java-26-so-far/"