Java新特性
概述
- 基于时间发布的版本策略使得 Java 开发团队能够及时获取开发者的反馈。随着版本的更新,Java 引入了许多简化语法的特性,提升了开发效率。此外,Java 在支持容器化场景和提升低延迟垃圾回收(如 ZGC)的表现上也取得了显著进展,为现代应用提供了更好的性能和可扩展性。
- 新特性发布的过程通常分为三个阶段:
- 孵化器阶段(Incubator):特性处于实验阶段,通常作为单独的模块或库出现,尚未包含在 Java SE 中。此时,特性的设计仍然不稳定,并且可能会进行频繁的调整和修改。
- 预览阶段(Preview):特性经过验证后进入预览阶段。开发人员可以启用并提供反馈。此时特性可能已包含在 Java SE 版本中,但默认是关闭的,开发者需要通过特定命令或配置来启用。
- 正式版阶段(GA):通过预览阶段的测试和反馈后,特性进入正式版,成为 Java SE 的一部分并默认开启,可以在开发中广泛使用。
- 并非所有JEP(Java Enhancement Proposal:Java增强方案)都需要经过孵化器和预览阶段。根据特性的重要性和复杂度,某些 JEP可能会直接进入正式发布阶段。
新特性
Java 8
2014 年 3 月—— 函数式编程的引入
- Lambda 表达式:简化函数式接口的实现。
- Stream API:支持集合的声明式处理。
- Optional 类:避免空指针异常。
- 新的日期时间 API(java.time):提供更强大的日期时间处理能力。
- 接口的默认方法和静态方法:增强接口的功能性。
查看更多:Java 8新特性
Java 9
2017 年 9 月—— 模块化系统的引入
- 模块系统(JPMS):通过
module-info.java实现模块化编程。- JShell:交互式命令行工具,方便测试和学习。
- 增强的 Stream API:新方法如
takeWhile、dropWhile。- 改进的 try-with-resources:资源管理更简洁。
查看更多:Java 9新特性
Java 10
2018 年 3 月—— 小幅更新
- 局部变量类型推断(var):简化变量声明。
查看更多:Java 10新特性
Java 11
2018 年 9 月—— 长期支持版本(LTS)
- HTTP Client API:标准化的 HTTP 客户端。
- 字符串新方法:如
lines()、strip()。- 运行单个 Java 文件无需编译:提高开发效率。
- 移除 Java EE 模块:精简核心模块。
查看更多:Java 11新特性
Java 12
2019 年 3 月—— 引入预览特性
- Switch 表达式(预览):增强 switch 的表达能力。
- Text Blocks(多行字符串):简化多行字符串的编写。
查看更多:Java 12新特性
Java 13
2019 年 9 月—— 引入预览特性
- 文本块(Text Blocks):多行字符串字面量的增强,提升代码可读性。
- 动态 CDS 归档:在运行时生成类数据共享(CDS)归档。
查看更多:Java 13新特性
Java 14
2020 年 3 月—— 引入预览特性
- Switch 表达式(预览):增强 switch 的表达能力。
- JEP 361:Unicode 13.0 支持:支持 Unicode 13.0。
- JEP 368:可废弃的 API:解决了几个过时的 API。
查看更多:Java 14新特性
Java 15
2020 年 9 月—— 语言结构的现代化
- 密封类(sealed classes):限制类的继承。
- Records(数据类):简化数据载体类的定义。
查看更多:Java 15新特性
Java 16
2021 年 3 月—— 语言结构的现代化
- Records(数据类):进一步简化数据载体类的定义。
- 密封类(sealed classes):限制类的继承。
- JEP 376:UNIX 域套接字:为 Unix 系统提供域套接字支持。
查看更多:Java 16新特性
Java 17
2021 年 9 月—— 长期支持版本(LTS)
- Pattern Matching for instanceof:简化类型检查和转换。
- 封装类的增强:提高安全性和可维护性。
- 增强的 switch 模式匹配(预览):提高代码表达力。
查看更多:Java 17新特性
Java 18
2022 年 3 月—— 新特性试验阶段
- 结构化并发(Structured Concurrency):简化并发编程模型。
- 虚拟线程(Virtual Threads)预览:提高并发性能。
- Vector API(向量计算):加速数值计算。
查看更多:Java 18新特性
Java 19
2022 年 9 月—— 新特性试验阶段
- 虚拟线程(Virtual Threads):进一步提升并发性能。
- 结构化并发(Structured Concurrency):进一步简化并发编程模型。
- JEP 405:隐式迁移:加速应用迁移。
查看更多:Java 19新特性
Java 20
2023 年 3 月—— 新特性试验阶段
- Vector API(向量计算):提升数据处理的性能。
- 虚拟线程(Virtual Threads):优化并发性能。
查看更多:Java 20新特性
Java 21
2023 年 9 月—— 长期支持版本(LTS)
- 虚拟线程(正式版):极大提升并发性能。
- Record 模式匹配:增强模式匹配能力。
- 字符串模板(预览):简化字符串拼接。
- Scoped Values(预览):线程间安全传值。
查看更多:Java 21新特性
Java 22
2024 年 3 月—— 工具链和语言增强
- Scoped Values(第二预览):改进线程间数据共享。
- Stream Gatherers(预览):增强 Stream API 的灵活性。
- 结构化并发(第二预览):进一步简化并发编程。
- 多文件源代码程序的启动:提高开发效率。
- Foreign Function & Memory API(正式版):安全调用本地代码。
查看更多:Java 22新特性
Java 23
2024 年 9 月—— 工具链和运行时优化
- Markdown 文档注释(JEP 467):支持使用 Markdown 编写 JavaDoc。
- ZGC 默认使用分代模式(JEP 474):提高垃圾回收性能。
- Stream Gatherers(第二预览):进一步增强 Stream API。
- Class-File API(预览):标准化类文件处理。
- 灵活的构造函数体(第二预览):提高构造函数的灵活性。
查看更多:Java 23新特性
Java 24
2025 年 3 月—— AI 支持与并发优化
- Stream Gatherers(正式版):增强数据流处理能力。
- Scoped Values(第四预览):进一步优化线程间数据共享。
- 结构化并发(第四预览):提升并发编程模型。
- Vector API(第九次孵化):加速 AI 推理和计算。
- 同步虚拟线程而不固定平台线程(JEP 491):提高虚拟线程的可扩展性。
- 量子安全加密算法(预览):增强安全性,抵御量子计算攻击。
查看更多:Java 24新特性