JDK 26:Java 26 的新功能
明年发布的 Java 将提升 G1 垃圾收集器的性能,并支持 HTTP/3。Applets API 将被砍掉。
Java Development Kit(JDK)26 是计划于 2026 年 3 月发布的标准 Java 更新版本,目前已计划推出前三个功能,最新功能是在使用 G1 垃圾收集器(GC)时提高应用程序吞吐量。
该 JEP(JDK 增强提案)G1 GC:通过减少同步提高吞吐量于 9 月 8 日提出,与之前排定的两项功能客户端 API 的 HTTP/3 和移除 Java Applet API一起。
G1 GC 提议旨在通过减少应用程序线程与 GC 线程之间所需的同步量,提高使用 G1 垃圾收集器时的应用程序吞吐量和延迟。目标包括减少 G1 垃圾收集器的同步开销、减少 G1 写入障碍注入代码的大小,以及在不改变用户交互的情况下保持 G1 的整体架构。
G1 垃圾收集器提案指出,虽然 HotSpot JVM 的默认垃圾收集器 G1 是为平衡延迟和吞吐量而设计的,但与面向吞吐量的垃圾收集器(如并行和串行收集器)相比,实现这种平衡有时会对应用程序性能产生不利影响:
与并行收集器相比,G1 与应用程序同时执行更多工作,减少了 GC 暂停的时间,从而改善了延迟。不可避免的是,这意味着应用程序线程必须与 GC 线程共享 CPU,并与它们协调工作。这种同步既降低了吞吐量,又增加了延迟。
JDK 26 是 Java 的一个短期版本,有 6 个月的 Premier 级支持,将紧随 9 月 16 日发布的 JDK 25,后者是一个长期支持 (LTS) 版本,有数年的 Premier 级支持。
HTTP/3 提议要求允许 Java 库和应用程序与 HTTP/3 服务器交互,只需对代码进行最小程度的修改。目标包括:更新 HTTP 客户端 API 以发送和接收 HTTP/3 请求和响应;只需对 HTTP 客户端 API 和 Java 应用程序代码稍作修改;允许开发人员选择使用 HTTP/3,而不是将默认协议版本从 HTTP/2 更改为 HTTP/3。
HTTP/3被认为是用于网络的 HTTP(超文本传输协议)数据通信协议的一个重要版本。第 3 版建立在 IETF QUIC(快速 UDP 互联网连接)传输协议的基础上,其功能包括流量控制流、低延迟连接建立、网络路径迁移和安全性。
移除 Java Applet API现在被认为已经过时,它也是 JDK 26 的目标。Applet API 已于 2021 年在 JDK 17 中被弃用。根据提议,该 API 已经过时,因为最近发布的 JDK 和当前的网络浏览器都不支持小程序。提案指出,没有理由保留这个未使用和无法使用的 API。
JDK 26 的其他可能功能还包括在 JDK 25 中预览的功能,如结构化并发;模式、“instanceof ”和 “switch ”中的原始类型;以及加密对象的PEM(隐私增强邮件)编码。JDK 25 中的一项实验性功能 JDK Flight Recorder CPU-time profiling 也可能包含在 JDK 26 中。
