跳到主要内容

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),一种类型安全的,原生的嵌套语言交互方式

参考