Skip to content

JDK 26 发布:HTTP/3 与预览特性速览 ​

修订于 2026-10-12:原文中没有来源的普及率、性能提升及部分 API 行为描述已删除。以下以 Oracle 官方发布说明和 API 文档为准。

JDK 26 于 2026 年 3 月 17 日发布。它包含 HTTP/3 客户端支持,也继续预览结构化并发等特性。发布并不意味着每个新能力都会默认启用,也不意味着升级后自动获得性能收益。

HTTP/3:客户端支持,但需主动选择 ​

JEP 517 为 JDK 的 HTTP Client API 增加 HTTP/3 支持。Oracle API 文档说明:默认实现支持 HTTP/1.1、HTTP/2 和 HTTP/3,但 HTTP/3 不会默认选择;可以在 HttpClient 或 HttpRequest 中将首选版本设为 HTTP/3。请求最终使用的协议还受服务器支持、连接发现、代理和网络环境等因素影响。HTTP/3 请求需要 HTTPS。

示意代码:

java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

try (var client = HttpClient.newBuilder()
        .version(HttpClient.Version.HTTP_3)
        .build()) {
    var request = HttpRequest.newBuilder(URI.create("https://example.com/"))
            .GET()
            .build();
    var response = client.send(request, HttpResponse.BodyHandlers.ofString());
    System.out.println(response.version());
}

示例用于说明选择协议的方式。编译和运行前应核对所安装 JDK 26 的 API 文档,并在目标网络测试协商结果;不要只看配置项就断定请求一定走 HTTP/3。

结构化并发仍是预览 API ​

JEP 525 是结构化并发的第六次预览。它把相关并发任务作为一个单元管理,以便处理取消、错误传播和可观测性。预览 API 的使用需要按 JDK 文档启用预览特性,后续版本的 API 也可能继续变化,不宜直接当作长期稳定接口。

其他值得检查的变化 ​

Oracle 的发布说明还列出惰性常量第二次预览、向量 API 第十一次孵化,以及多个语言与运行时变化。具体是否影响项目,取决于所用库、编译选项和部署环境。升级前应:

  1. 阅读与项目相关的发布说明和迁移指南,检查移除与弃用项。
  2. 在测试环境编译并运行现有测试,尤其是依赖预览、孵化 API 的代码。
  3. 对 HTTP/3、GC 等性能相关变化做同条件测量,记录吞吐、延迟和资源占用。
  4. 制定回滚方案,再逐步扩大生产流量。

官方资料 ​

梧桐和风 · 让复杂的技术讲得更清楚