JDK 1到JDK 21的所有功能和升级特性

以下是罗列JDK 1到JDK 21的一些主要特性概览:

JDK 1.0 (1996)

  • 初始版本,提供了Java编程语言的基础。

JDK 1.1 (1997)

  • 内部类
  • JavaBeans
  • JDBC (Java Database Connectivity)
  • RMI (Remote Method Invocation)
  • 反射 (Reflection)

JDK 1.2 (1998) - 称为Java 2

  • Swing GUI组件库
  • 集合框架
  • JIT (即时编译器)
  • Java Plug-in

JDK 1.3 (2000)

  • HotSpot JVM
  • RMI/CORBA
  • JavaSound

JDK 1.4 (2002)

  • 正则表达式
  • NIO (New Input/Output)
  • 日志API (java.util.logging)
  • XML处理 (JAXP)
  • Java Web Start

JDK 5 (2004) - 版本号从1.4跳到5,以表明重大更新

  • 泛型
  • 注解 (Annotations)
  • 自动装箱/拆箱
  • 枚举类型
  • 可变参数
  • for-each循环

JDK 6 (2006)

  • 脚本语言支持 (Rhino)
  • JDBC 4.0
  • Java Compiler API
  • 改进了Web服务支持
  • 改进了性能和管理功能

JDK 7 (2011)

  • try-with-resources语句
  • NIO.2 文件系统API
  • Fork/Join框架
  • 支持动态语言特性 (InvokeDynamic)
  • 二进制字面量和数字字面量的下划线

JDK 8 (2014) - 长期支持版本 (LTS)

  • Lambda表达式
  • Stream API
  • 新的日期时间API (java.time)
  • 接口中的默认方法和静态方法
  • Nashorn JavaScript引擎
  • 改进了集合框架和并发API

JDK 9 (2017)

  • 模块系统 (Project Jigsaw)
  • JShell (交互式Java REPL)
  • 改进的Javadoc
  • 私有接口方法
  • HTTP/2 客户端 (实验性)

JDK 10 (2018)

  • 局部变量类型推断 (var关键字)
  • 应用程序类数据共享 (CDS)
  • 改进的容器支持和GC

JDK 11 (2018) - 长期支持版本 (LTS)

  • 新的HTTP客户端API (标准化)
  • Flight Recorder
  • ZGC (实验性垃圾收集器)
  • 删除了一些过时和不常用的API

JDK 12 (2019)

  • Shenandoah GC
  • Switch表达式 (预览)
  • JEP 189: Shenandoah: 一个低停顿时间的垃圾收集器 (实验性)
  • JEP 230: Microbenchmark Suite

JDK 13 (2019)

  • Switch表达式 (正式版)
  • Text Blocks (预览)
  • ZGC和Shenandoah GC改进

JDK 14 (2020)

  • Switch表达式 (正式版)
  • Record类 (预览)
  • Pattern Matching for instanceof (预览)
  • Helpful NullPointerExceptions
  • NUMA-Aware Memory Allocation for G1

JDK 15 (2020)

  • Sealed Classes (预览)
  • Pattern Matching for instanceof (第二次预览)
  • Hidden Classes
  • ZGC和Shenandoah GC改进
  • Text Blocks (正式版)

JDK 16 (2021)

  • Record类 (正式版)
  • Pattern Matching for instanceof (正式版)
  • Sealed Classes (第二次预览)
  • Foreign Memory Access API (Incubator)
  • JEP 338: Vector API (Incubator)

JDK 17 (2021) - 长期支持版本 (LTS)

  • Sealed Classes (正式版)
  • Pattern Matching for switch (预览)
  • New macOS Rendering Pipeline
  • Strongly Encapsulate JDK Internals
  • Foreign Function & Memory API (Incubator)

JDK 18 (2022)

  • Project Loom (Virtual Threads, Structured Concurrency) (Incubator)
  • Project Panama (Foreign Function & Memory API) (Incubator)
  • Simple Web Server (for prototyping and testing)
  • UTF-8 by Default
  • Pattern Matching for switch (第二次预览)

JDK 19 (2022)

  • Project Loom (Virtual Threads, Structured Concurrency) (Incubator)
  • Project Panama (Foreign Function & Memory API) (Incubator)
  • Pattern Matching for switch (第三次预览)
  • Record Patterns and Array Patterns (Preview)
  • Vector API (Third Incubator)

JDK 20 (2023)

  • Record Patterns and Array Patterns (Preview)
  • Pattern Matching for switch (正式版)
  • Virtual Threads (Preview)
  • Structured Concurrency (Preview)
  • Foreign Function & Memory API (Preview)

JDK 21 (2023-9-19)- 长期支持版本 (LTS)

  • 在核心Java库方面,JDK 21纳入了以下六个新特性:
  • JEP 431序列集合
  • JEP 442外部函数和内存API(第三次预览)
  • JEP 444虚拟线程,JEP 446作用域值(预览)
  • JEP 448 Vector API(第六次孵化器)
  • JEP 453结构化并发(预览)
  • 另外,根据Java语言规范,还增加了五个新特性。
  • 值得一提的是,JDK 21中特别值得关注的是虚拟线程(JEP 444)。
  • 虚拟线程是Java平台的一项新功能,它旨在改进Java中的并发编程模型。相较于传统的基于操作系统线程的并发模型——每个线程都需要分配一个操作系统线程来执行,虚拟线程提供了一种更高效、更轻量的线程模型。
  • 此外,商业支持方面,客户能够按照自己的步伐进行迁移,且至少有八年的商业支持。这些更新和改进为开发人员提供了强大的工具,使得他们能够更快地构建应用。