前言:Java 25,新的 LTS 时代
2025 年 9 月,Oracle 正式发布 JDK 25(长期支持版 LTS)。 这是继 JDK 21 之后两年推出的又一长期支持版本,标志着 Java 生态正式迈入'虚拟线程稳定、结构化并发成熟、ZGC 全面代际化'的新阶段。
本文将系统梳理 JDK 25 相比 JDK 21 的核心更新,附上关键代码示例与实战建议,助您快速完成从旧版到新版的过渡。
语言层面的增强
1. 模式匹配扩展到原生类型(Primitive Pattern Matching)
以前,instanceof 和 switch 模式匹配只支持引用类型。JDK 25 引入 原生类型的模式匹配(JEP 507),现在可以直接匹配 int、long、double 等。
static String describe(Object obj) {
return switch (obj) {
case int i -> "整数:" + i;
case long l -> "长整型:" + l;
case double d -> "浮点数:" + d;
default -> "其他类型";
};
}
public static void main(String[] args) {
System.out.println(describe(42)); // 输出:整数:42
System.out.println(describe(3.14)); // 输出:浮点数:3.14
}
优势:消除装箱/拆箱样板代码、性能更优。
2. Scoped Values:更优雅的线程上下文传递
JDK 21 引入虚拟线程(Virtual Thread),JDK 25 进一步完善了Scoped Values(JEP 506),替代传统 ThreadLocal。
import java.lang.ScopedValue;
public class ScopedValueDemo {
static ScopedValue<String> USER = ScopedValue.newInstance();
{
ScopedValue.where(USER, ).run(() -> {
System.out.println( + USER.get());
});
}
}

