Java 版本
约 2 分钟阅读
Java Release
- 自 Java 9
- 每 6 个月一个版本
- 每 2 年一个 LTS - 每 4 个版本
- Java 11 - Java 17 隔了 3 年, 之后为每隔两年
- Java JEP 与版本变化笔记Java JEP 与版本变化资料来源以 OpenJDK JDK Project 页面和 JEP 页面为主。Java 5–7 主要按 JSR/项目整理;JDK 8 起按代表性 JEP 整理;JDK 10 起列出该版本项目页 Features 中的全部 JEP。 · | 状态 | 含义 | 使用建议 |打开:/notes/java/version/java-jep
- 参考
- Java version historyWikipediaJava version history自 Java 9 · 每 6 个月一个版本 · 每 2 年一个 LTS - 每 4 个版本 · Java 11 - Java 17 隔了 3 年, 之后为每隔两年 · Java JEP 与版本变化 · 参考 · Java version history笔记:Java 版本
- 未来特性
- Project Valhalla
- 值类型
- Project Panama
- 增强 Native 交互/跨语言交互
- Project Loom
- 虚拟线程
- JEP 386 Alpine Linux Port
- 16 开始移除 musl 包,通过该 JEP 支持 musl
- adoptium/containers#1GitHub Issueadoptium/containers#1
- Project Portola
- Project Valhalla
# 检测 class 文件版本
javap -verbose MyClass | grep "major"| version | major | release | note |
|---|---|---|---|
| Java 26笔记Java 26Released: 2026-03-17 · JDK 26 Project · Java 26 是非 LTS 版本,重点在语言预览继续推进、HTTP/3、AOT 对象缓存、G1 吞吐优化,以及 Applet API 最终移除。 · Applet API 已移除;仍引用 / 的旧代码需要清理。打开:/notes/java/version/java-26 | 70 | 2026-03-17 | |
| Java 25笔记Java 25Released: 2025-09 · LTS · JDK 25 Project · LTS。Scoped Values、模块导入、紧凑源文件、灵活构造函数体、KDF、紧凑对象头和分代 Shenandoah 转正。 · LTS。Scoped Values、紧凑源文件、模块导入、KDF、紧凑对象头等转正,但 Structured Concurrency...打开:/notes/java/version/java-25 | 69 | 2025-09 | LTS |
| Java 24笔记Java 24Released: 2025-03-18 · JDK 24 Project · Class-File API 和 Stream Gatherers 转正,Security Manager 永久禁用,虚拟线程同步 pinning 问题修复,AOT 启动链路开始落地。打开:/notes/java/version/java-24 | 68 | 2025-03 | |
| Java 23笔记Java 23Released: 2024-09-17 · JDK 23 Project · Markdown Javadoc、分代 ZGC 默认进入,模块导入和原始类型模式预览,Unsafe 内存方法开始移除路线。 · Unsafe 内存访问方法进入移除路线,应迁移到 VarHandle/FFM。打开:/notes/java/version/java-23 | 67 | 2024-09-18 | |
| Java 22笔记Java 22Released: 2024-03-19 · JDK 22 Project · FFM、未命名变量和多文件源码启动转正,Class-File API 和 Stream Gatherers 首次预览。 · FFM API 转正,可逐步替代 JNI/JNA 场景。打开:/notes/java/version/java-22 | 66 | 2024-03 | |
| Java 21笔记Java 21Released: 2023-09-19 · LTS · JDK 21 Project · LTS。虚拟线程、Record Patterns、switch 模式匹配转正,Sequenced Collections 加入,Generational ZGC 可用。打开:/notes/java/version/java-21 | 65 | 2023-09 | LTS |
| Java 20笔记Java 20Released: 2023-03-21 · JDK 20 Project · 延续 Java 19 的预览和孵化能力,Scoped Values 首次孵化。 · 主要是预览/孵化迭代,适合跟踪 Loom/Panama API 变化。 · | JEP | 状态 | 分类 | 标题 | 中文描述 |打开:/notes/java/version/java-20 | 64 | 2023-03 | |
| Java 19笔记Java 19Released: 2022-09-20 · JDK 19 Project · Loom/Panama 关键能力进入预览,虚拟线程首次预览,结构化并发首次孵化。 · Virtual Threads/Structured Concurrency/FFM 仍是预览或孵化。打开:/notes/java/version/java-19 | 63 | 2022-09 | |
| Java 18笔记Java 18Released: 2022-03-22 · JDK 18 Project · UTF-8 成为默认字符集,简单 Web 服务器和 Javadoc 代码片段加入,Finalization 开始废弃。 · 默认 UTF-8 可能改变依赖系统默认编码的旧程序行为。打开:/notes/java/version/java-18 | 62 | 2022-03 | |
| Java 17笔记Java 17Released: 2021-09-14 · LTS · JDK 17 Project · LTS。Sealed Classes 转正,JDK 内部强封装正式推进,Security Manager/Applet/RMI Activation 进入移除阶段。打开:/notes/java/version/java-17 | 61 | 2021-09 | LTS |
| Java 16笔记Java 16Released: 2021-03-16 · JDK 16 Project · Records 和 instanceof 模式匹配转正,jpackage 转正,JDK 开发迁到 Git/GitHub,内部 API 默认强封装。 · Records、instanceof pattern 已可正式使用。打开:/notes/java/version/java-16 | 60 | 2021-03 | |
| Java 15笔记Java 15Released: 2020-09-15 · JDK 15 Project · Text Blocks、ZGC、Shenandoah 转正,Nashorn/Solaris/SPARC 移除,Sealed Classes 首次预览。 · Nashorn 已移除,脚本场景迁移到 GraalJS 或其他引擎。打开:/notes/java/version/java-15 | 59 | 2020-09 | |
| Java 14笔记Java 14Released: 2020-03-17 · JDK 14 Project · Switch Expressions 转正,Records、instanceof 模式匹配、Text Blocks 继续预览,CMS 与 Pack200 移除。打开:/notes/java/version/java-14 | 58 | 2020-03 | |
| Java 13笔记Java 13Released: 2019-09-17 · JDK 13 Project · 继续预览 switch 和 text blocks,并增强 CDS、ZGC 和旧 Socket API 实现。 · Text Blocks 仍是预览,语法最终在 Java 15 转正。打开:/notes/java/version/java-13 | 57 | 2019-09 | |
| Java 12笔记Java 12Released: 2019-03-19 · JDK 12 Project · 小版本中引入 Switch Expressions 预览,默认 CDS 归档和 G1 改进,Shenandoah 首次实验进入。 · Switch Expressions 仍是预览,生产代码需谨慎依赖。打开:/notes/java/version/java-12 | 56 | 2019-03 | |
| Java 11笔记Java 11Released: 2018-09-25 · LTS · JDK 11 Project · Java 8 后第一个 LTS。HTTP Client 标准化,Java EE/CORBA 移除,Flight Recorder 开源,ZGC/Epsilon 进入实验。打开:/notes/java/version/java-11 | 55 | 2018-09 | LTS |
| Java 10笔记Java 10Released: 2018-03-20 · JDK 10 Project · 半年节奏的第一个版本。语言层是 var,本身也完成 JDK 仓库、GC 接口、AppCDS 和版本号模型整理。 · var 只适合局部变量,公共 API 中不要用它表达设计意图。打开:/notes/java/version/java-10 | 54 | 2018-03 | |
| Java 9笔记Java 9Released: 2017-09-21 · JDK 9 Project · 模块化 JDK 的大版本。核心是 JPMS、jlink、jshell、集合工厂、Flow、G1 默认、内部 API 封装和多版本 JAR。 · 模块系统会暴露 split package、非法反射访问和内部 API 依赖问题。打开:/notes/java/version/java-9 | 53 | 2017-09 | |
| Java 8笔记Java 8Released: 2014-03-18 · LTS · JDK 8 Project · Lambda 与 Stream 时代开始。JEP 机制在 JDK 8 已覆盖大量平台工作,但 Java 8 的核心是 JSR 335 Lambda、JSR 310 Date Time、Nashorn、PermGen 移除和集合并行处理。打开:/notes/java/version/java-8 | 52 | 2014-03 | LTS |
| Java 7笔记Java 7Released: 2011-07-28 · Codename: Dolphin · Java SE 7 Dolphin。Project Coin、NIO.2、Fork/Join、invokedynamic、try-with-resources、switch string、multi-catch。打开:/notes/java/version/java-7 | 51 | 2011-07 | |
| Java 6笔记Java 6Released: 2006-12-11 · Codename: Mustang · Java SE 6 Mustang。JSR 223 脚本、JSR 199 Compiler API、JSR 269 注解处理、JDBC 4、JAX-WS/JAXB、监控工具增强。打开:/notes/java/version/java-6 | 50 | 2006-12 | |
| Java 5笔记Java 5Released: 2004-09-30 · Codename: Tiger · J2SE 5.0 Tiger。泛型、注解、枚举、自动装箱、增强 for、可变参数、静态导入、JUC。 · Generics:编译期类型安全,减少集合取值时的强制类型转换。打开:/notes/java/version/java-5 | 49 | 2004-09 | |
| Java 1.4 | 48 | 2002-02 | |
| Java 1.3 | 47 | 2000-05 | |
| Java 1.2 | 46 | 1998-12 | |
| Java 1.1 | 1997-02 | ||
| Java 1.0 | 1996-01 |
Java 6
关联信息
反向链接和本文引用的外部资料。
反向链接
- 系统升级笔记 · Java 版本变化
避免常见 CVE · 例如: 借助 quay 扫描版本 CVE https://quay.io/repository/wener/base?tab=tags · 避免手生 - 太久不升级就再也不敢升级 · 小版本升级可解决一些 Bug 也值得升级
References
GitHub
1 条- adoptium/containers#1github.com/adoptium/containers/issues/1
Wikipedia
1 条- Java version historyWikipedia:Java version history
其他外链
6 条- jcp.org/aboutJava/communityprocess/maintenance/jsr270/index.htmljcp.org/aboutJava/communityprocess/maintenance/jsr270/index.html
- openjdk.java.net/jeps/386openjdk.java.net/jeps/386
- openjdk.java.net/projects/loomopenjdk.java.net/projects/loom
- openjdk.java.net/projects/panamaopenjdk.java.net/projects/panama
- openjdk.java.net/projects/portolaopenjdk.java.net/projects/portola
- openjdk.java.net/projects/valhallaopenjdk.java.net/projects/valhalla