Java 新特性专题:Java 8 到 Java 26 重要特性梳理
Java 从 9 开始改为半年一版的快速发布节奏,但真正值得长期跟进的只有 LTS 版本。本篇给出一张学习地图:讲清发布节奏,给每个关键版本标出一条主线,并提供可执行的学习建议。
发布节奏与 LTS
2017 年起 Oracle 把 Java 改为每 6 个月发布一个版本,由 LTS 版本承担长期支持。目前公认值得长期投入的是 8、11、17、21,以及 2025 年 9 月发布的新 LTS 25。非 LTS 版本本质上是特性试验田,支持周期只有半年,生产环境一般直接跳过;学习时把精力压在 LTS 上,非 LTS 只跟踪自己关心的特性即可。
同时要会区分三种特性形态:正式特性可直接上生产;预览特性(需要 --enable-preview 开启)语义在后续版本仍可能调整;孵化特性连 API 都不保证稳定。升级评估时先分清形态,再谈收益。
各版本一条主线
- Java 8(LTS,2014):函数式能力。Lambda、Stream、Optional、接口默认方法、java.time 日期 API,这套组合至今仍是现代 Java 的地基。
- Java 9:模块化。JPMS 重塑了 JDK 自身的组织方式,JShell 让交互式验证成为日常工具。
- Java 10:局部变量类型推断
var。它只是编译期语法糖,不是动态类型。 - Java 11(LTS):标准化 HTTP Client,String 与集合小幅增强,ZGC 以实验形态登场;同时移除了一批 Java EE 模块,从 8 升 11 的坑大多集中在这里。
- Java 17(LTS):语法现代化集中兑现。文本块、switch 表达式、Record、密封类、instanceof 模式匹配在此前几个版本陆续定型并转正。
- Java 21(LTS):虚拟线程转正,重写了高并发编程的成本模型;switch 模式匹配与 Record 模式配套成熟;分代 ZGC 显著改善低延迟场景表现。
- Java 25(LTS):并发配套能力继续补齐(如作用域值转正、结构化并发持续演进),以性能优化与库增强为主要升级收益。
- 中间的非 LTS 版本:多数语法特性在这里以预览形态快速迭代一两个版本,再于下一个 LTS 前后转正,例如文本块、Record 都经历过这个过程。
值得强调的是,「不追每个版本」并不等于「不关注演进」。很多正式特性的最终形态与最初预览版有细节差异,提前跟踪能让你在 LTS 落地时少踩迁移的坑;但学习时间应按转正后的 LTS 口径投入,而不是在预览阶段就死记语法。
学习建议
- 地基优先:Java 8 的 Lambda、Stream、日期 API 是后续一切的前提,先练到不用查文档。
- 按 LTS 主线推进:8 → 11 → 17 → 21 → 25,每个版本挑 2~3 个能在当前项目落地的特性做小型实验,比通读 Release Notes 有效得多。
- 语法特性与运行时特性分开评估:前者(var、文本块、Record)影响可读性,后者(虚拟线程、分代 ZGC)影响架构与性能,升级决策时权重完全不同。
- 面试准备以 LTS 差异为纲:被问「Java 17 相比 8 多了什么」时,按「语法—库—并发—GC」四条线组织答案,而不是按版本流水账背诵。
小结
快速发布的意义是把大版本拆小,让特性以预览形式快速试错;LTS 则是这条河流里可以停靠的码头。学习策略就是站在码头上,看清河里漂过什么,再决定捞哪些上岸。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Dai Wei!
评论

