Java Development Kit 发展史

从1996年至今,Java开发工具包经历了多次重大更新,推动了软件开发技术的发展

JDK 1.0

1996年1月

第一个正式发布的Java开发工具包,代号为Oak。

  • 包含最初版本的Java虚拟机(JVM)
  • 提供Applet、AWT等基础类库
  • 确立了Java"一次编写,到处运行"的理念

JDK 1.1

1997年2月

引入了大量新特性,显著增强了Java的功能。

  • 新增JDBC API用于数据库访问
  • 引入内部类(Inner Classes)
  • 添加JavaBeans和RMI
  • AWT事件模型重新设计

JDK 1.2 (Playground)

1998年12月

这是一个重要的版本,Java开始分为三个版本:J2SE、J2EE、J2ME。

  • 引入Swing图形界面库
  • 添加JIT(即时)编译器
  • 引入集合框架(Collections Framework)
  • 新增strictfp关键字

JDK 1.3 (Kestrel)

2000年5月

主要进行性能优化和增加新特性。

  • HotSpot JVM成为默认虚拟机
  • 引入Java Sound API
  • 添加JPDA(Java Platform Debugger Architecture)
  • 改进CORBA支持

JDK 1.4 (Merlin)

2002年2月

第一个由JCP(JSR)流程开发的版本。

  • 新增正则表达式支持
  • 引入异常链(Exception Chaining)
  • 添加NIO(Non-blocking I/O)
  • 集成XML解析器
  • 添加日志API(java.util.logging)

JDK 5.0 (Tiger)

2004年9月

这是Java历史上最重要的版本之一,引入了许多革命性特性。

  • 引入泛型(Generic)
  • 添加注解(Annotations)
  • 增强for循环(For-Each)
  • 自动装箱/拆箱(Autoboxing/Unboxing)
  • 枚举(Enums)和可变参数(Varargs)
  • 引入JConsole监控工具

JDK 6 (Mustang)

2006年12月

主要关注性能优化、脚本语言支持和JVM改进。

  • 脚本语言支持(JSR 223)
  • 引入JDBC 4.0
  • 添加编译器API
  • 改进JVM性能和内存管理
  • 提供更好的监控和管理功能

JDK 7 (Dolphin)

2011年7月

Oracle收购Sun后发布的第一个主要版本。

  • 引入Diamond语法(<>)
  • 添加try-with-resources语句
  • 支持字符串作为switch语句条件
  • 新增NIO.2文件系统API
  • 改进Fork/Join框架

JDK 8

2014年3月

被认为是自JDK 5以来最具革命性的版本。

  • 引入Lambda表达式
  • 添加Stream API
  • 新的日期时间API (java.time)
  • 接口支持默认方法和静态方法
  • 引入Nashorn JavaScript引擎
  • 移除永久代(PermGen)

JDK 9

2017年9月

引入了Java平台模块系统。

  • Java平台模块系统(JPMS)
  • 引入JShell工具
  • 改进Javadoc
  • HTTP/2客户端
  • 多版本兼容JAR文件

JDK 10

2018年3月

引入局部变量类型推断。

  • 局部变量类型推断(var关键字)
  • 基于时间的发布版本控制
  • 垃圾收集器接口
  • 线程局部管控

JDK 11

2018年9月

LTS长期支持版本,移除了多项过时功能。

  • HTTP客户端(标准)
  • 移除Java EE和CORBA模块
  • 添加ZGC(可扩展低延迟垃圾收集器)
  • 引入Epsilon垃圾收集器
  • Unicode 10支持

JDK 12-15

2019-2020年

短期版本,每6个月发布一次,引入多项新特性。

  • Switch表达式(预览)
  • 文本块(预览)
  • Records(预览)
  • Sealed Classes(预览)
  • Pattern Matching(预览)
  • 改进G1和ZGC垃圾收集器

JDK 16-17

2021年

JDK 17是新的LTS版本,包含多项重要更新。

  • 密封类(Sealed Classes)
  • Pattern Matching for instanceof
  • Records(记录类)
  • Foreign Memory Access API(预览)
  • ZGC并发栈处理

JDK 18-20

2022-2023年

持续改进和新特性预览。

  • 默认UTF-8编码
  • Simple Web Server
  • Structured Concurrency(结构化并发)
  • Scoped Values(作用域值)
  • Virtual Threads(虚拟线程)

JDK 21

2023年9月

最新的LTS版本,包含多项重要特性。

  • 虚拟线程(Virtual Threads)
  • 序列化集合(Sequenced Collections)
  • 字符串模板(String Templates,预览)
  • 作用域值(Scoped Values)
  • 外部函数和内存API(预览)
🚀

性能提升

每个版本都在性能方面有所改进,包括垃圾收集器优化、JIT编译器增强等。

🔧

开发效率

通过引入Lambda表达式、Stream API、var关键字等特性,大大提高了开发效率。

🌐

现代化支持

对函数式编程、响应式编程、并发处理等现代编程范式提供了更好的支持。