JDK 各版本特性
列举了历年来各 JDK 版本的主要特性,持续更新。
JDK 5
- 泛型(Generics),增强 for 循环(for-each loop),自动装箱、拆箱(Autoboxing/Unboxing),类型安全枚举(Type-Safe Enum),可变参数(Varargs),注解(Annotations)等
JDK 6
- JDBC 4.0 API 增强
- Java Compiler API,可以用 Java 代码编写 Java 代码
- Pluggable Annotation Processing API,用于在编译时扫描和处理注解
JDK 7
- switch 语句支持字符串
- 改进的 try-catch 语法,可以一次捕捉多个异常
- 支持二进制字面量表示
- 自动资源管理,try-with-resources 语句
- 数字字面量中加下划线,从而增强了对数字字面量的可读性
JDK 8
- Lambda 表达式(Lambda Expressions)和方法引用(Method References)
- Stream API,使集合操作变得更加简单、快速且易于并行化
- 接口默认方法(Default methods)
- 类型注解(Type Annotations)
JDK 9
- 模块系统,提供更好的可视性和可靠性,以及更好的性能和安全性
- JShell,Java 的 Read-Eval-Print Loop(REPL)
- 改进的 Javadoc
JDK 10
- 局部变量类型推断(Local-Variable Type Inference)
- 基于时间的版本控制(Time-Based Version-Control)
JDK 11
- Unicode 10 支持
- HTTP Client API
- 基于命令行的作用域(Single-File Source-Code Programs)
JDK 12
- switch 表达式(Switch Expressions)的新语法,支持更加灵活的分支控制
- 改进了 shenandoah GC(Garbage Collector)的性能
JDK 13
- 改进了 ZGC(Z Garbage Collector)的性能
- 文本块(Text Blocks)的新语法
JDK 14
- 改进了Javadoc的HTML评注输出
- 支持析构方法(Destructuring Declarations)
JDK 15
- 改进的文本块(Text Blocks)
- 用于废弃现有 GC 算法的预览 API
JDK 16
- Record 类,一种新的基于类的声明形式,用于将数据封装为对象
- 将 ZGC(Z Garbage Collector)扩展到 macOS 和 Windows 平台上
JDK 17
- 向 Windows 和 macOS 平台添加支持 Cocoa OpenJDK 工具包的 API
- 基于 Java:FFI(Foreign Function and Interface),一种类型安全的,原生的嵌套语言交互方式