Java 新特性专题:Java 8 到 Java 26 重要特性梳理
约 1216 字大约 4 分钟
Java 新特性不适合按版本机械背诵,更适合抓住“语言表达能力、标准库增强、并发模型、JVM 改进、长期支持版本”这几条主线。日常开发优先掌握 Java 8、11、17、21 等 LTS 版本中的稳定特性,再按需了解后续版本的预览和孵化特性。
适合谁看
- 想系统了解 Java 8 之后版本变化的 Java 开发者。
- 准备 Java 新特性、LTS 版本差异、虚拟线程、Record、模式匹配等面试题的同学。
- 负责 JDK 升级,需要判断哪些特性会影响项目代码和运行时表现的工程师。
- 已经熟悉 Java 8,但对 Java 11、17、21 之后变化不够清楚的读者。
学习重点
- Java 8 的 Lambda、Stream、Optional、接口默认方法和新日期 API。
- Java 9 的模块化,以及后续版本对语言语法和标准库的持续增强。
- Java 11、17、21 等 LTS 版本中更值得优先掌握的稳定能力。
- var、文本块、Record、Switch 表达式、密封类、模式匹配等语言层变化。
- 虚拟线程、结构化并发、分代 ZGC、Foreign Function & Memory API 等运行时和并发相关变化。
- 区分正式特性、预览特性、孵化特性,避免在生产升级中误判风险。
建议阅读顺序
- Java8 新特性实战:先掌握 Lambda、Stream、Optional、接口默认方法和新日期 API。
- Java 9 新特性概览、Java 10 新特性概览:理解模块化和局部变量类型推断等基础变化。
- Java 11 新特性概览(重要):重点关注第一个 8 之后被广泛采用的 LTS 版本。
- Java 17 新特性概览(重要):掌握 Record、密封类、Switch、模式匹配等现代 Java 语法演进。
- Java 21 新特性概览(重要):重点学习虚拟线程、分代 ZGC、模式匹配和字符串模板等变化。
- 再按需阅读 Java 22 & 23 新特性概览、Java 24 新特性概览、Java 25 新特性概览、Java 26 新特性概览。
核心文章
Java 8 基础能力
- Java8 新特性实战:掌握 Lambda、函数式接口、Stream、Optional、接口默认方法和新日期 API。
- 《Java8 指南》中文翻译:通过更系统的教程理解 Java 8 常用特性。
重要 LTS 版本
- Java 11 新特性概览(重要):关注 HTTP Client、字符串 API、集合 API、ZGC 实验特性等变化。
- Java 17 新特性概览(重要):关注 Record、密封类、Switch 表达式、文本块和模式匹配相关能力。
- Java 21 新特性概览(重要):关注虚拟线程、分代 ZGC、Record Pattern、Pattern Matching for switch 等特性。
按版本追踪
- Java 9 新特性概览:理解模块化系统和 JShell。
- Java 10 新特性概览:了解局部变量类型推断和运行时改进。
- Java 12 & 13 新特性概览:了解 Switch 表达式、文本块等变化。
- Java 14 & 15 新特性概览:了解 Record、文本块、隐藏类等特性。
- Java 16 新特性概览:了解 Record 正式转正、Pattern Matching for instanceof 等变化。
- Java 18 新特性概览、Java 19 新特性概览、Java 20 新特性概览:跟进 UTF-8 默认字符集、虚拟线程预览、结构化并发等演进。
- Java 22 & 23 新特性概览、Java 24 新特性概览、Java 25 新特性概览、Java 26 新特性概览:了解较新版本中的预览、孵化和正式特性。
高频问题
- Java 8 为什么重要?Lambda 和 Stream 分别解决什么问题?
Optional适合用在哪些场景?为什么不建议滥用?- Java 9 模块化解决了什么问题?
var是动态类型吗?它适合在哪些场景使用?- Record 和普通 JavaBean 有什么区别?
- Switch 表达式和传统 switch 有什么区别?
- 密封类适合解决什么问题?
- 模式匹配带来了哪些代码简化?
- 虚拟线程适合什么场景?和平台线程有什么区别?
- 生产升级 JDK 时,如何区分正式特性、预览特性和孵化特性?
