Skip to main content

Java 26

核心总结

  • Java 26 是非 LTS 版本,重点在语言预览继续推进、HTTP/3、AOT 对象缓存、G1 吞吐优化,以及 Applet API 最终移除。

升级关注

  • Applet API 已移除;仍引用 java.applet / javax.swing.JApplet 的旧代码需要清理。
  • final 字段语义开始进入收紧路线,反射/Unsafe/序列化框架对 final 字段的写入能力需要关注后续兼容性。
  • HTTP Client 引入 HTTP/3 支持,可评估对高延迟/移动网络场景的收益。
  • Structured Concurrency、Lazy Constants、Primitive Types in Patterns 仍是预览;Vector API 仍是孵化。

示例

HTTP/3 for HTTP Client

import java.net.URI;
import java.net.http.*;

var client = HttpClient.newBuilder()
.version(HttpClient.Version.HTTP_3)
.build();
var request = HttpRequest.newBuilder(URI.create("https://example.com/")).build();
var response = client.send(request, HttpResponse.BodyHandlers.discarding());

Primitive Types in Patterns Preview

// javac --enable-preview --release 26 Demo.java
static String render(Object value) {
return switch (value) {
case int i -> "int " + i;
case long l -> "long " + l;
default -> "other";
};
}

JEPs

JEP状态分类标题中文描述
JEP 500迁移预告语言Prepare to Make Final Mean Final准备强化 final 字段语义,减少深反射等机制对 final 字段的随意修改。
JEP 504移除/禁用库/APIRemove the Applet API移除 Applet API,完成长期废弃路线。
JEP 516正式GC/RuntimeAhead-of-Time Object Caching with Any GCAOT 对象缓存扩展到任意 GC,改善启动与预热。
JEP 517正式库/APIHTTP/3 for the HTTP Client APIjava.net.http HTTP Client 支持 HTTP/3。
JEP 522正式GC/RuntimeG1 GC: Improve Throughput by Reducing Synchronization通过减少同步开销提升 G1 吞吐。
JEP 524第二次预览安全/加密PEM Encodings of Cryptographic Objects (Second Preview)PEM 编码加密对象 API 第二次预览。
JEP 525第六次预览并发/LoomStructured Concurrency (Sixth Preview)结构化并发第六次预览。
JEP 526第二次预览语言Lazy Constants (Second Preview)懒常量第二次预览,用于延迟计算并稳定发布常量值。
JEP 529第十一次孵化Panama/向量/原生Vector API (Eleventh Incubator)Vector API 第十一次孵化。
JEP 530第四次预览语言Primitive Types in Patterns, instanceof, and switch (Fourth Preview)原始类型模式、instanceofswitch 第四次预览。

References