JDK 8 vs JDK 11 新特性

JDK 8 vs JDK 11

类别 JDK 8 JDK 11(包含 JDK9/10 特性)
语言特性 Lambda、方法引用、函数式接口 var 局部变量类型推断
集合 Stream API Stream 增强(takeWhile()dropWhile() 等)、List.of() 等不可变集合
日期时间 java.time 新日期 API 持续增强
Optional 基础 API isEmpty()ifPresentOrElse()or()stream()
String 无明显增强 isBlank()strip()lines()repeat()
文件 NIO.2 Files.readString()writeString()
网络 HttpURLConnection 全新 HttpClient(支持 HTTP/2、异步)
运行方式 需先编译 支持 java Hello.java 直接运行
JVM G1 可选 G1 更成熟,支持 ZGC(实验)、容器感知更好
模块化 JPMS(Java Platform Module System)

JDK 8 亮点

  • Lambda 表达式
  • Stream API
  • Optional
  • java.time
  • CompletableFuture
  • 接口默认方法(default

JDK 11 亮点

  • 模块化(JPMS)
  • var
  • 新版 HttpClient
  • String、Files API 增强
  • 不可变集合工厂方法(List.of() 等)
  • 单文件源码运行
  • 更好的 Docker/Kubernetes 支持

JDK 11 升级注意

  • 移除了 JAXB、JAX-WS、CORBA 等 Java EE 模块,需要单独引入依赖。
  • sun.* 等内部 API 限制更严格,旧代码可能需要调整。

一句话总结

  • JDK 8:函数式编程时代(Lambda + Stream)。
  • JDK 11:现代 Java 平台(模块化 + 新 API + 容器优化 + 更好的 JVM)。