只讲LTS 版本8 / 11 / 17 / 21 / 25 中真正影响生产代码和架构的东西跳过 6 个月非 LTS 的实验车道。0. 先建立坐标系为什么只看 LTSJava 9 之后改成6 个月一个功能版但只有被标记为 LTS 的版本会获得多年安全补丁与 Bug 修复生产系统只认 LTS。LTS 时间线Java 82014-03——存量之王函数式启蒙Java 112018-09——模块化后的第一个 LTSJava 172021-09——Spring Boot 3 底线强封装时代Java 212023-09——虚拟线程落地并发范式切换Java 252025-09-16 GA——最新 LTS支持到 2033 前后1. Java 82014函数式与现代 Java 的起点尽管不是 6 个月节奏下的 LTS但它是现代 Java的分水岭。语言层Lambda 表达式JSR 335匿名内部类退场单方法接口用()-{}解决Stream APIJEP 107filter/map/reduce声明式集合处理接口默认方法 / 静态方法向后兼容地演进 API如Collection.stream()Optional显式表达可能为空告别隐式 NPEjava.timeJSR 310取代Date/Calendar不可变、时区清晰库与 JVM新日期时间、Base64 标准库、JVM 层面 Nashorn已废弃等一句话Java 8 让 Java 从面向对象老炮变成也能写函数式的语言。2. Java 112018模块化清理 现代化基础设施从 11 开始LTS 进入做减法阶段。语言与开发体验var局部变量推断JEP 28610 引入 11 继承var list new ArrayListString()Lambda 参数可用varJEP 323单文件源码直接运行JEP 330java Hello.java不用先javacHTTP Client 转正JEP 321java.net.http支持 HTTP/2、WebSocket替代HttpURLConnectionJDK 自身瘦身移除 Java EE 模块JAXB/JAX-WS 等JEP 320 → 交棒 Jakarta EE这是 8→11 升级最大坑移除 CORBA、JavaFX 分离Flight Recorder 开源JEP 328、TLS 1.3JEP 332ZGC / Shenandoah 以实验形态登场一句话11 是拆掉历史包袱 补齐现代网络/诊断工具的 LTS。3. Java 172021类型系统收紧 Spring Boot 3 基线语言多数在 14–16 预览后于 17 附近定型Records16 转正record Point(int x, int y){}一行写完不可变数据载体Pattern Matchinginstanceof16 转正if (o instanceof String s) { s.length() }Text Blocks15 转正 ...多行字符串Sealed ClassesJEP 409sealed interface A permits B, C {}精确控制谁能继承Switch 表达式14 转正yield/-箭头无 fall-throughJVM 与边界强封装 JDK 内部 APIJEP 403--illegal-access默认 denysun.misc.Unsafe反射受限老框架升级主要雷区ZGC 正式可用、G1 优化增强随机数发生器JEP 356、移除 RMI ActivationUTF-8 在 18 成为默认但 17 项目常已显式统一一句话17 把类型更安全 代码更短 反射黑魔法受限钉死是当代企业基线。4. Java 212023并发范式革命并发Project Loom虚拟线程正式 GAJEP 444JVM 托管轻量线程初始栈几 KBExecutors.newVirtualThreadPerTaskExecutor()轻松百万并发阻塞自动让出载体线程Scoped Values预览JEP 446替代ThreadLocal配合虚拟线程无泄漏Structured Concurrency预览JEP 453把一批子任务当整体取消/报错语言Pattern Matching forswitchJEP 441case Integer i when i0 - ...、支持 null、守卫、类型解构Record PatternsJEP 440if (o instanceof Point(int x, int y))Sequenced CollectionsJEP 431SequencedCollection/Set/Map统一首尾访问与反转未命名变量/模式预览JVM分代 ZGCJEP 439年轻代更频、老年代更少亚毫秒停顿 吞吐提升弃用 Windows 32 位 x86一句话21 让高并发 I/O 代码写起来像同步阻塞跑起来像协程成为现实。5. Java 252025-09 LTS极简语法 内存/启动/可观测性Java 25 包含 18 个 JEP下面是生产相关重点预览特性标注 Preview。语言易用性Compact Source Files Instance Main MethodsJEP 512Hello World 不再需要public classstatic mainvoid main() { System.out.println(hi from Java 25); }Module Import DeclarationsJEP 511import module java.base;一次性引入模块所有包Flexible Constructor BodiesJEP 513super()之前可写参数校验/本地计算Primitive Types in PatternsJEP 507第三预览instanceof/switch/ 模式匹配支持基本类型Stable ValuesJEP 502预览比final灵活、比 lazy holder 高效的不可变延迟初始化并发与线程Scoped Values 正式转正JEP 506虚拟线程上下文传递首选Structured Concurrency 第五预览JEP 505JVM 性能Compact Object HeadersJEP 519对象头 12–16B → 8B堆占用降 10–20%、缓存命中提升Generational ShenandoahJEP 521分代模式转正停顿进一步下降AOT Command-Line ErgonomicsJEP 514 AOT Method ProfilingJEP 515Project Leyden 方向容器/Serverless 启动更快JFR 增强CPU-time profiling实验JEP 509、Cooperative SamplingJEP 518、Method Timing TracingJEP 520移除 32 位 x86 端口JEP 503安全与库Key Derivation Function APIJEP 510PBKDF2/HKDF 标准化PEM EncodingsJEP 470预览密钥/证书 PEM 编解码进标准库Vector API 第十孵化JEP 508AI/数值计算向一句话25 是新人写得像脚本、老手拿到底层内存红利、安全对齐后量子的 LTS。6. 一张 LTS 断层对照表维度811172125函数式Lambda/StreamvarRecords/密封类模式switch基元模式/极简main并发OS线程OS线程OS线程虚拟线程GAScoped Values GA网络HttpURLConnectionHttpClientHttpClientHttpClientHttpClientGC默认ParallelG1G1G1/分代ZGCG1/分代ZGC/分代Shenandoah对象头12-16B同同同8B模块/封装无JPMS强封装强封装模块导入声明安全老TLSTLS1.3去SMKEM APIKDF/PEM/后量子铺垫生态基线老Spring过渡SpringBoot3新项目首选2025新LTS7. 升级路径建议避坑向遗留系统8 → 11 先解决javax.xml.bind等 Jakarta 迁移、反射--add-opens平稳现代化11 → 17 吃 Records/密封类Spring Boot 3 必须 17高并发新服务直接 21虚拟线程 分代 ZGC云原生/AI 边车/长期基线21 → 25注意预览特性结构化并发、基元模式别进生产字节码每次只跨一个 LTS用jdeprscan扫废弃 API8. 结语Java 8 给了写得短11 给了跑得干净17 给了类型稳21 给了并发轻25 给了内存小、启动快、门槛低。LTS 的价值不是特性最多而是公司敢把它写进 5 年架构基线。2026 年的新项目如果没历史负担Java 21 是稳妥起点Java 25 是前瞻起点。