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中的并发编程模型。相较于传统的基于操作系统线程的并发模型——每个线程都需要分配一个操作系统线程来执行,虚拟线程提供了一种更高效、更轻量的线程模型。
- 此外,商业支持方面,客户能够按照自己的步伐进行迁移,且至少有八年的商业支持。这些更新和改进为开发人员提供了强大的工具,使得他们能够更快地构建应用。