当前位置: 首页 > news >正文

JDK 发展历史及其版本特性

JDK(Java Development Kit,Java开发工具包)是用于开发Java应用程序的核心工具之一。它由Oracle(最初由Sun Microsystems)提供,包含了Java编译器、Java运行环境(JRE)、Java标准类库等。JDK的发展历程反映了Java语言本身的发展演进,下面是JDK各个重要版本的历史和主要特性:

🌱 早期阶段(1996–2006,Sun Microsystems)

JDK 1.0 (1996)

  • Java首次发布,支持基本的语言特性。
  • 核心包如 java.lang, java.io, java.util 等。
  • 主要目标是“编写一次,处处运行”。

JDK 1.1 (1997)

  • 引入内部类(Inner Classes)
  • JavaBeans组件模型
  • JDBC(Java Database Connectivity)
  • RMI(远程方法调用)

🌳 成熟与广泛使用期(2000–2010)

JDK 1.2 – Java 2 (1998)

  • 被称为Java 2平台(J2SE)
  • 引入了集合框架(Collections Framework)
  • 改进AWT和Swing GUI库

JDK 1.3 (2000)

  • 引入Java Sound API
  • 改进性能,主要是HotSpot VM集成

JDK 1.4 (2002)

  • 引入 assert 关键字
  • NIO(新I/O API)
  • 正则表达式支持(java.util.regex

JDK 5 (2004)

(原JDK 1.5,正式名称改为Java 5)

  • 引入泛型(Generics)
  • 增强for循环(for-each)
  • 自动装箱/拆箱
  • 枚举类型(Enum)
  • 注解(Annotations)
  • 变量参数(Varargs)

JDK 6 (2006)

  • 融合脚本语言(JSR 223)
  • Web服务改进(JAX-WS)
  • 性能提升

🌟 现代化转型(2011–2017)

JDK 7 (2011)

  • 二进制数字字面量(0b1010
  • try-with-resources 语法
  • 多重catch块、字符串作为switch参数
  • Fork/Join框架(并行计算支持)

JDK 8 (2014)

  • 引入Lambda表达式(函数式编程)
  • Stream API(处理集合的新方式)
  • 默认方法(default methods) in 接口
  • 新的日期/时间API(java.time
  • JavaScript引擎Nashorn

🚀 快速发布周期阶段(2017–至今,Oracle和OpenJDK)

Oracle宣布Java将采用6个月发布一个新版本的节奏。

JDK 9 (2017)

  • 模块系统(Project Jigsaw)
  • JShell(交互式REPL)
  • 改进了JVM监控和诊断

JDK 10 (2018)

  • var 关键字(局部变量类型推断)

JDK 11 (2018)长期支持(LTS)

  • 移除Java EE和CORBA模块
  • 引入HttpClient API(标准化)
  • 垃圾回收器改进(ZGC引入)

JDK 12–16(2019–2021)

  • 开始引入诸如:
    • Switch表达式(预览)
    • Text Blocks(多行字符串)
    • Records(简洁数据类)
    • Sealed Classes(密封类)

JDK 17 (2021)LTS版本

  • Sealed Classes正式发布
  • 强封装 JDK 内部 API
  • 新的macOS渲染器
  • Pattern Matching for instanceof

JDK 18–20(2022–2023)

  • 结构化并发(Structured Concurrency)实验性引入
  • 外部函数和内存API(Project Panama 相关)

JDK 21 (2023)LTS版本

  • Virtual Threads(轻量线程,Project Loom)
  • String Templates(预览)
  • 完善的模式匹配功能(Pattern Matching)
  • 更完善的Records和密封类集成

🔮 未来方向

  • 项目Loom:全面引入协程风格的并发支持
  • 项目Panama:改善Java与本地代码的互操作性
  • 项目Valhalla:引入值类型(Value Types)和更高效的数据结构

相关文章:

  • Python训练打卡Day17
  • 基于 AI 的工程投标六随机五区间报价得分模型模拟计算
  • 云计算与大数据进阶 | 25、可扩展系统构建
  • 力扣面试150题--对称二叉树
  • 【大模型面试每日一题】Day 10:混合精度训练如何加速大模型训练?可能出现什么问题?如何解决?
  • MYSQL的DDL语言和单表查询
  • LearnOpenGL---绘制三角形
  • 多线程网络编程:粘包问题、多线程/多进程服务器实战与常见问题解析
  • 【实战项目】简易版的 QQ 音乐:一
  • 文件上传/读取/包含漏洞技术说明
  • 大模型——GraphRAG基于知识图谱+大模型技术构建的AI知识库系统
  • 第1.3讲、什么是 Attention?——从点菜说起 [特殊字符]️
  • LeetCode 1781. 所有子字符串美丽值之和 题解
  • ultralytics框架进行RT-DETR目标检测训练
  • EASM外部攻击面管理平台
  • Relay算子注册
  • 7.9/Q1,Charls最新文章解读
  • Dagger中编译import报找不到ProvideClientFactory,initialize中ProvideClientFactory爆红
  • 猿人学刷题系列(第一届比赛)——第一题
  • 技术对暴力的削弱
  • 商务部新闻发言人就中美经贸高层会谈答记者问
  • 打造多元文旅消费场景,第四届长三角城市戏剧节启幕
  • 韩正出席庆祝中国欧盟建交50周年招待会并致辞
  • 专家解读《人源类器官研究伦理指引》:构建类器官研究全过程伦理治理框架
  • 北美票房|“雷霆”开画票房比“美队4”低,但各方都能接受
  • 侯麦:从莫扎特到贝多芬