JDK 版本历史全览:从 JDK 6 到 Java 26

jxq
6
2026-04-13

JDK 版本历史全览:从 JDK 6 到 Java 26

Java 自 1996 年发布以来,经历了多次重大版本更新。本文整理了从 JDK 6 到最新版本 Java 26 的完整版本历史,包括发布时间、LTS 状态、主要特性及商用许可信息。

JDK 版本历史总览表

版本代码名称发布时间LTS主要特性更新商用许可状态Premier SupportExtended Support关键说明
JDK 6Mustang2006-12-11Scripting API (JSR 223)、JDBC 4.0、Compiler API、JAX-WS 2.0、JAXB 2.0、SwingWorker、Nimbus L&FBCL 许可,公开更新 2013 年结束2013-02-最后一个 Sun Microsystems 主导版本,引入 G1 GC (实验性)
JDK 7Dolphin2011-07-28try-with-resources、菱形运算符 <>、switch 支持字符串、Fork/Join 框架、invokedynamic、NIO.2、TWR 增强BCL/OTN 许可,公开更新 2015 年结束2015-04-首个 Oracle 主导版本,支持动态语言的关键基础
JDK 8-2014-03-18Lambda 表达式、Stream API、Optional、java.time (新日期时间 API)、默认方法、方法引用、重复注解、Nashorn JavaScript 引擎OTN 许可,个人/开发免费,商用需订阅2022-032030-12最广泛使用的 LTS 版本,Lambda 是 Java 历史最大语言变革
JDK 9-2017-09-21模块化系统 (JPMS/jigsaw)、JShell (REPL)、私有接口方法、改进的 try-with-resources、不可变集合工厂方法、多版本 JAROTN 许可2018-03-首个 6 个月发布周期的版本,模块化是重大架构变革
JDK 10-2018-03-20var 局部变量类型推断、并行 Full GC (G1)、应用类数据共享 (AppCDS)、线程局部握手、Heap Allocation on Alternative Memory DevicesOTN 许可2018-09-首个短期支持版本,类型推断首次引入 Java
JDK 11-2018-09-25HTTP Client API (标准)、var 用于 Lambda 参数、Flight Recorder 开源、ZGC (实验性)、Epsilon GC、嵌套访问控制、单文件程序执行OTN 许可,商用需订阅2023-092032-01首个移除 Java EE 和 CORBA 模块的版本,Nashorn 被弃用
JDK 12-2019-03-19Switch 表达式 (预览)、JVM 常量 API、微基准测试套件、Shenandoah GC (实验性)、默认 CDS 归档OTN 许可2019-09-Switch 表达式现代化开始
JDK 13-2019-09-17文本块 (预览)、Switch 表达式增强 (yield)、动态 CDS 归档、Socket API 重构、ZGC 支持归还内存OTN 许可2020-03-文本块让多行字符串更易读
JDK 14-2020-03-17Records (预览)、Pattern Matching for instanceof (预览)、打包工具 (jpackage)、JFR 事件流、NUMA 感知内存分配OTN 许可2020-09-Records 开启 Java 数据类时代,switch 表达式正式版
JDK 15-2020-09-15文本块正式版、Records 二次预览、密封类 (预览)、隐藏类、ZGC 正式版、Eden 区内存对齐OTN 许可2021-03-Nashorn JavaScript 引擎被移除
JDK 16-2021-03-16Records 正式版、密封类二次预览、Pattern Matching for instanceof 正式版、Vector API (孵化)、Foreign Linker API (孵化)、Records 序列化支持OTN 许可2021-09-Records 成为正式特性,强封装 JDK 内部 API
JDK 17-2021-09-14密封类正式版、Pattern Matching for instanceof 正式版、新的 macOS渲染管道 (Metal)、随机数生成器增强、Foreign Function & Memory API (孵化)OTN 许可,个人/开发免费2026-092029-09最后一个免费 OTN LTS 版本,Applet API 弃用
JDK 18-2022-03-22默认 UTF-8、Simple Web Server、代码片段 API (JEP 413)、WebAssembly 支持 (预览)、Foreign Function & Memory API 二次孵化OTN 许可2022-09-终结了 25 年的默认编码问题
JDK 19-2022-09-20虚拟线程 (预览,Project Loom)、结构化并发 (孵化)、作用域值 (孵化)、Vector API 四次孵化、Foreign Function & Memory API 正式版OTN 许可2023-03-虚拟线程是并发编程革命性特性
JDK 20-2023-03-21虚拟线程二次预览、作用域值二次孵化、记录模式 (预览)、switch 模式匹配 (预览)、结构化并发二次孵化OTN 许可2023-09-模式匹配持续演进
JDK 21-2023-09-19虚拟线程正式版、分代 ZGC、记录模式正式版、switch 模式匹配正式版、字符串模板 (预览)、序列化集合、分代 ShenandoahNFTC 免费许可 (All Users)2028-092031-09首个 NFTC 免费 LTS,虚拟线程正式发布,并发编程新纪元
JDK 22-2024-03-19未命名变量和模式 (_)、隐式声明类、外部函数和内存 API 正式版、Stream Gatherers、未命名类和实例主方法NFTC 免费许可2024-09-让 Java 初学者更易上手
JDK 23-2024-09-17原始类型模式匹配 (预览)、模块导入声明、灵活构造器体、Markdown 文档注释、隐式声明类增强、Primitive Types in PatternsNFTC 免费许可2025-03-文档注释支持 Markdown
JDK 24-2025-03-18分代 Shenandoah 正式版、值类型 (预览,Project Valhalla)、作用域值正式版、灵活构造器体增强、Compact Object HeaderNFTC 免费许可2025-09-值类型重大突破
JDK 25-2025-09-16待定 (预计包含值类型增强、模式匹配改进)NFTC 免费许可 (All Users)2030-092033-09最新 LTS,2026年9月后更新转 OTN 许可
JDK 26-2026-03-17待定NFTC 免费许可2026-09-最新版本,非 LTS

早期版本回顾 (JDK 1.0 - JDK 5)

版本代码名称发布时间主要特性历史意义
JDK 1.0Oak1996-01-23核心语言特性、AWT、Applet、I/O、网络库Java 语言诞生
JDK 1.1-1997-02-19内部类、JavaBeans、JDBC、RMI、反射、JIT (Windows)、国际化企业级特性基础
J2SE 1.2Playground1998-12-08Swing、Collections、strictfp、JIT 编译器、Java Plug-in、Java IDL (CORBA)Java 2 品牌确立,平台规模扩大 3 倍
J2SE 1.3Kestrel2000-05-08HotSpot JVM、JNDI、JPDA、JavaSound、动态代理类HotSpot 成为性能标杆
J2SE 1.4Merlin2002-02-06assert 关键字、正则表达式、NIO、Logging API、XML 解析器、JAXP、JAAS、Java Web Start首个 JCP 管理版本,现代 Java 基础
J2SE 5.0Tiger2004-09-30泛型、注解、自动装箱/拆箱、枚举、可变参数、增强 for 循环、静态导入、java.util.concurrent语言变革最大版本,现代 Java 语法确立

关键概念详解

LTS (Long-Term Support) 长期支持版本

Oracle 每 2 年发布一个 LTS 版本,提供长期支持:

LTS 版本发布日期Premier Support 截止Extended Support 截止Sustaining Support
JDK 82014-032022-032030-12无限期
JDK 112018-092023-092032-01无限期
JDK 172021-092026-092029-09无限期
JDK 212023-092028-092031-09无限期
JDK 252025-092030-092033-09无限期
JDK 29 (计划)2027-092032-092035-09无限期

支持级别说明

  • Premier Support: 完整支持,包括更新、安全补丁、Bug 修复
  • Extended Support: 扩展支持,需额外付费
  • Sustaining Support: 仅限已有补丁的重发布,无新修复

商用许可状态详解

许可类型全称适用版本个人/开发商用
BCLBinary Code LicenseJDK 6 及之前免费免费
OTNOracle Technology Network LicenseJDK 7-17免费需订阅
NFTCNo-Fee Terms and ConditionsJDK 21+ (LTS)免费免费

重要时间点

  • 2019-04: JDK 8 商用更新开始收费
  • 2021-09: JDK 17 发布,仍为 OTN 许可
  • 2023-09: JDK 21 首个 NFTC 免费 LTS
  • 2026-09: JDK 25 更新将转为 OTN 许可

OpenJDK 替代选择

Oracle JDK 并非唯一选择,OpenJDK 构建版本提供免费商用支持:

发行版提供商特点
Eclipse TemurinEclipse Adoptium社区驱动,广泛使用
Amazon CorrettoAWSAWS 优化,免费长期支持
Azul ZuluAzul Systems企业级支持,多种平台
Microsoft Build of OpenJDKMicrosoftAzure 优化
Alibaba DragonWellAlibaba阿里优化,国内友好
华为毕昇 JDKHuawei鲲鹏优化
腾讯 Kona JDKTencent云环境优化

重要特性演进时间线

语言特性

特性引入版本正式版说明
泛型JDK 5JDK 5类型安全的集合
注解JDK 5JDK 5元数据标记
枚举JDK 5JDK 5类型安全的常量
Lambda 表达式JDK 8JDK 8函数式编程
模块化系统JDK 9JDK 9JPMS/Jigsaw
var 类型推断JDK 10JDK 10局部变量类型推断
RecordsJDK 14 (预览)JDK 16简洁数据类
密封类JDK 15 (预览)JDK 17限制继承
文本块JDK 13 (预览)JDK 15多行字符串
Switch 表达式JDK 12 (预览)JDK 14表达式形式 switch
模式匹配JDK 14 (预览)JDK 21类型模式匹配
虚拟线程JDK 19 (预览)JDK 21轻量级线程
字符串模板JDK 21 (预览)-字符串插值
值类型JDK 24 (预览)-Project Valhalla

JVM 垃圾收集器演进

GC引入版本正式版特点
Serial GCJDK 1.3JDK 1.3单线程,适合客户端
Parallel GCJDK 4JDK 4吞吐量优先
CMSJDK 5JDK 5低延迟,JDK 9 弃用,JDK 14 移除
G1 GCJDK 6u14 (实验)JDK 7u4分区收集,平衡延迟与吞吐
Shenandoah GCJDK 12 (实验)JDK 15低延迟,<10ms 停顿
ZGCJDK 11 (实验)JDK 15低延迟,<10ms 停顿,支持 TB 级堆
分代 ZGCJDK 21JDK 21更好的分代收集效率
分代 ShenandoahJDK 24JDK 24分代 Shenandoah

版本选择建议

按使用场景推荐

场景推荐版本理由
企业生产环境 (保守)JDK 8 / JDK 11稳定成熟,广泛兼容
企业生产环境 (现代化)JDK 17 / JDK 21LTS + 现代特性
新项目启动JDK 21免费 LTS,虚拟线程
微服务/云原生JDK 21虚拟线程 + 低启动时间
大数据/机器学习JDK 17 / JDK 21性能优化 + Foreign Memory API
Android 开发JDK 11 / JDK 17Android Gradle 兼容性
遗留系统维护JDK 8最大兼容性
学习/实验新特性JDK 26 (最新)最新语言特性

升级路径建议

JDK 8 → JDK 11 → JDK 17 → JDK 21 → JDK 25
  ↓        ↓        ↓        ↓
保守    保守    稳健    推荐

参考资料


本文最后更新于 2026年4月13日

附录:版本发布节奏

自 2017 年 9 月起,Java 采用每 6 个月一个新版本的发布节奏:

年份    3月      9月
─────────────────────────
2017           JDK 9
2018   JDK 10  JDK 11 (LTS)
2019   JDK 12  JDK 13
2020   JDK 14  JDK 15
2021   JDK 16  JDK 17 (LTS)
2022   JDK 18  JDK 19
2023   JDK 20  JDK 21 (LTS)
2024   JDK 22  JDK 23
2025   JDK 24  JDK 25 (LTS)
2026   JDK 26  JDK 27
2027   JDK 28  JDK 29 (LTS, 计划)

规律

  • 3 月: 非 LTS 特性版本
  • 9 月: LTS 年份发布 LTS 版本(每 2 年)
  • LTS 版本:8 → 11 → 17 → 21 → 25 → 29...
动物装饰