JDK8-17每个版本的新特性一览
2023-08-03

JDK 8(发布于2014年):

  1. Lambda 表达式和函数式接口
  2. 接口的默认方法和静态方法
  3. 新的日期和时间 API
  4. 重复注解

JDK 9(发布于2017年):

  1. 模块化系统(Jigsaw)
  2. 改进的 JShell REPL
  3. 私有接口方法
  4. G1 垃圾收集器的改进

JDK 10(发布于2018年):

  1. 局部变量类型推断(var)
  2. 应用级别线程暂停(Thread.onSpinWait() 方法)
  3. 基于时间的版本控制
  4. 并行 Full GC

JDK 11(发布于2018年):

  1. HTTP Client API
  2. 单元测试框架改进
  3. 本地变量语法扩展(var 支持在 lambda 参数中)
  4. 动态类文件常量

JDK 12(发布于2019年):

  1. Switch 表达式
  2. 线程补偿器
  3. 延长的 AArch64 intrinsics

JDK 13(发布于2019年):

  1. 文本块
  2. 动态 CDS 归档

JDK 14(发布于2020年):

  1. 移除了 Concurrent Mark Sweep(CMS)垃圾收集器
  2. 新增了预览功能 Switch 表达式
  3. 添加了 Records(数据类)

JDK 15(发布于2020年):

  1. 新增了预览功能 Sealed 类和接口
  2. 添加了 Records(数据类)的进一步改进
  3. 添加了 ZGC(低延迟垃圾收集器)的并发模式

JDK 16(发布于2021年):

  1. 垃圾收集器的改进
  2. JEP 338:Unix 域套接字通道
  3. 兼容性警告的改进

JDK 17(发布于2021年):

  1. JEP 338:基于配置文件的启动
  2. JEP 356:垃圾收集器接口
  3. JEP 395:记录模式的重构
  4. JEP 394:模式结束时处理垃圾回收
  5. JEP 376:ZGC 并发垃圾回收器的改进

以上仅列举了每个版本的主要新特性,还有其他一些改进和修复不一一列举。