Java 8 (2014年发布)
- Lambda表达式:简化了代码,使得函数式编程在Java中成为可能。
- Stream API:提供了一种高效的方式来处理集合数据,支持串行和并行操作。
- 默认方法:允许接口有默认实现,解决了接口演变问题。
- 新的日期和时间API:替代了旧的
java.util.Date
和java.util.Calendar
,提供了更好的日期和时间处理。 - Nashorn JavaScript引擎:允许在JVM上运行JavaScript代码。
Java 9 (2017年发布)
- 模块系统:引入了Java平台模块系统(Project Jigsaw),使得开发人员可以将应用程序分解成模块。
- JShell:交互式的命令行工具,用于快速测试和原型化代码。
- 多版本JAR文件:允许在同一个JAR文件中包含针对不同Java版本的类。
- 改进的JVM性能和诊断:包括新的GC算法和更好的诊断工具。
Java 10 (2018年发布)
- 局部变量类型推断:引入了
var
关键字,使得编写代码更简洁。 - GC改进:引入了基于堆分片的垃圾回收机制(G1 GC)。
Java 11 (2018年发布)
- LTS版本:长期支持版本。
- 新的字符串方法:如
isBlank()
、lines()
、strip()
等。 - 运行时编译:允许将Java代码直接编译为可执行的二进制文件。
- 废弃和移除的特性:如Java EE和CORBA模块。
Java 12 (2019年发布)
- Switch表达式(预览特性):使得switch语句可以返回值,并支持更简洁的语法。
- 新的GC(Shenandoah):降低GC暂停时间。
Java 13 (2019年发布)
- 文本块(预览特性):多行字符串文本块,简化了处理多行字符串的需求。
- Switch表达式改进(预览特性):进一步改进和增强。
Java 14 (2020年发布)
- 记录(预览特性):引入了一种新的类类型,旨在简化数据载体类的编写。
- Switch表达式(正式):switch表达式正式成为Java语言的一部分。
- NPE改进:改进了NullPointerException的诊断信息。
Java 15 (2020年发布)
- 文本块(正式):文本块正式成为Java语言的一部分。
- 密封类(预览特性):允许限制哪些类可以扩展或实现某个类或接口。
- 隐藏类:支持动态生成和使用运行时类。
Java 16 (2021年发布)
- 记录(正式):记录类正式成为Java语言的一部分。
- 密封类(第二预览):进一步改进和增强。
- Vector API(孵化器):用于在Java中实现矢量计算。
Java 17 (2021年发布)
- LTS版本:长期支持版本。
- 封闭类(正式):密封类正式成为Java语言的一部分。
- 封装JDK内部API:进一步封装JDK内部API,提高安全性。
Java 18 (2022年发布)
- UTF-8默认字符集:使得UTF-8成为Java的默认字符集。
- 简单Web服务器:用于开发和测试的简单内置Web服务器。
Java 19 (2022年发布)
- 虚拟线程(预览):轻量级线程,旨在提高并发性能。
- 结构化并发(预览):简化并发编程模型。
Java 20 (2023年发布)
- 模式匹配(扩展):进一步增强和改进模式匹配功能。
- 序列化过滤器:提高序列化的安全性和可控性。
Java 21 (2023年发布)
- 虚拟线程(正式):虚拟线程正式成为Java的一部分。
- 增强的序列化:进一步提高序列化的安全性和性能。
陈睿mikechen
十余年BAT架构经验,资深技术专家,就职于阿里、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》