Skip to content

Java 26 新特性

发布日期:2026-03-17

1. 语言特性

1.1 原始类型模式匹配(第四次预览)

增强 instanceof 和 switch,支持所有原始类型。

java
// instanceof 支持原始类型
if (obj instanceof int i) {
    System.out.println(i * 2);
}

// switch 支持原始类型
switch (value) {
    case 1 -> "one";
    case 2 -> "two";
    default -> "other";
}

2. 核心特性

2.1 准备让 final 真正 final(JEP 500)

对通过反射修改 final 字段的行为发出警告,为未来确保 Java 程序安全性做准备。

2.2 移除 Applet API(JEP 504)

移除已废弃的 Applet API(自 JDK 17 开始废弃)。

2.3 任意 GC 的 AOT 对象缓存(JEP 516)

AOT 缓存现在可与任何垃圾收集器配合使用,包括 ZGC。

3. 并发与网络

3.1 结构化并发(第六次预览)

java
try (var scope = new StructuredTaskScope.ShutdownOnFailure()) {
    Future<String> f1 = scope.fork(() -> task1());
    Future<String> f2 = scope.fork(() -> task2());
    scope.join();
    scope.throwIfFailed();
}

3.2 HTTP/3 支持(JEP 517)

HTTP Client API 支持 HTTP/3 协议。

java
HttpClient.newBuilder()
    .protocolVersion(HttpClient.Version.HTTP_3)
    .build();

3.3 向量 API(第十一次孵化)

表达向量计算,在运行时可靠地编译为最优向量指令。

4. 安全

4.1 PEM 编码(第二次预览)

新增 API 支持 PEM 格式的密钥、证书编解码。

4.2 混合公钥加密(HPKE)

新增 "HPKE" 密码算法,支持 RFC 9180 定义的混合公钥加密。

5. 库更新

5.1 Comparator 新增 min/max 方法

java
Comparator.comparingInt(Student::getAge).min(s1, s2);
Comparator.comparingInt(Student::getAge).max(s1, s2);

5.2 Process 实现 AutoCloseable

java
try (Process p = new ProcessBuilder("ls").start()) {
    // process 自动关闭
}

5.3 Duration 新增 MIN/MAX 常量

java
Duration.MIN;  // 最小值
Duration.MAX;  // 最大值

5.4 Instant 新增 plusSaturating

java
Instant.now().plusSaturating(Duration.ofHours(1000));
// 不会抛异常,超过范围返回 Instant.MAX/MIN

5.5 UUIDv7 支持

java
UUID uuid = UUID.ofEpochMillis(System.currentTimeMillis());

5.6 Unicode 17.0

支持 Unicode 17.0,新增 4,803 个字符。

6. GC 优化

6.1 G1 提升吞吐量

减少 GC 线程与应用线程之间的同步,提升 G1 吞吐量。

6.2 G1 支持 GCOverheadLimit

G1 现在会在 GC 开销超过限制时抛出 OOM。

6.3 虚拟线程优化

等待类初始化的虚拟线程现在会从 carrier 线程卸载,避免死锁。

7. 其他

7.1 JDBC 4.5 支持

  • 废弃 SQLPermission
  • 新增 DECFLOAT 和 JSON 类型

7.2 API 文档深色主题

JavaDoc 新增深色主题支持。

8. 总结

类别特性
语言原始类型模式匹配(预览)
并发结构化并发(预览)、虚拟线程优化
网络HTTP/3 支持
安全PEM 编码(预览)、HPKE
Comparator min/max、Process AutoCloseable、Duration MIN/MAX、UUIDv7
GCG1 吞吐量优化、AOT 任意 GC