以下是从Java 8到Java 17的各个版本的新特性的详细列表:

Java 8的新特性:

  1. Lambda表达式和函数式接口。
  2. 接口的默认方法和静态方法
  3. 方法引用。
  4. Stream API。
  5. 新的日期/时间API。
  6. 类型注解。
  7. 重复注解。
  8. 更好的类型推断。

Java 9的新特性:

  1. 模块系统(Java Platform Module System,JPMS)。
  2. JShell(交互式命令行工具)。
  3. 私有接口方法。
  4. 改进的Stream API。
  5. 集合工厂方法。
  6. 改进的Java编译器。

Java 10的新特性:

  1. 局部变量类型推断。
  2. 并行全垃圾回收器(Parallel Full GC)。
  3. 改进的线程局部变量(Thread-Local Handshakes)。

Java 11的新特性:

  1. HTTP客户端API。
  2. 局部变量语法扩展。
  3. 紧凑的字符串。
  4. 改进的垃圾回收器(Epsilon GC)。
  5. 动态类文件常量。
  6. 改进的启动时间。

Java 12的新特性:

  1. Switch表达式(Switch Expressions)。
  2. 紧凑的Number格式(Compact Number Formats)。
  3. 改进的垃圾回收器(Shenandoah GC)。

Java 13的新特性:

  1. 文本块(Text Blocks)。
  2. 改进的垃圾回收器(ZGC)。

Java 14的新特性:

  1. 改进的Switch表达式。
  2. 实例of操作符(Instanceof Pattern Matching)。
  3. 改进的垃圾回收器(ZGC)。

Java 15的新特性:

  1. 改进的垃圾回收器(ZGC)。
  2. 隐式的引用类(Hidden Classes)。
  3. 延迟编写(Sealed Classes)。
  4. 改进的文本块。

Java 16的新特性:

  1. 基于模式的匹配(Pattern Matching)。
  2. Records(记录类)。
  3. 改进的垃圾回收器(ZGC)。
  4. 过度性能监视工具(JEP 394)。

Java 17的新特性:

  1. Sealed Classes(密封类)的扩展。
  2. 基于模式的Switch语句(Pattern Matching for Switch)。
  3. 改进的垃圾回收器(ZGC)。
  4. Unix套接字(Unix Domain Sockets)支持。