JDK版本更新明细
Oracle JDK 历史版本更新明细 (1996 - 2026)
本文档整理了自 1996 年以来 Java (JDK) 的所有主要版本更新(基于 Oracle 官方 "What's New" 及发行说明文档、归档文档翻译整理),从语言特性、JVM (GC 演进)、核心类库、以及弃用/移除四个维度分类说明 Java 的技术演进。
1. 版本发布模式与路线图 (Support Roadmap)
- 发布周期: 自 Java 9 起,每 6 个月发布一个功能版本(Feature Release)。
- LTS 版本: 长期支持版本(如 8, 11, 17, 21, 25)提供数年的生产级支持。
- 官方路线图: Oracle Java SE Support Roadmap
2. 早期奠基阶段 (JDK 1.0 - 1.4)
JDK 1.0 (1996-01-23)
- 主要更新: Java 语言的第一个公开稳定版本。包含基础类库(Applet, AWT, 网络, 输入输出等)。
JDK 1.1 (1997-02-19)
- 语言特性:
- 引入 内部类 (Inner Classes)。
- 核心类库:
- 引入 JDBC
- RMI
- JavaBeans
- AWT 事件模型重构
- JVM:
- 引入 JIT (Just-In-Time) 编译器初稿。
J2SE 1.2 / 1.3 / 1.4 (1998 - 2002)
- 1.2 (1998):
- 引入 集合框架 (Collections)
- Swing UI
strictfp关键字
- 1.3 (2000):
- HotSpot JVM 成为标准配置
- 引入 JavaSound
- JPDA
- 1.4 (2002):
- 引入 NIO (New I/O)
- 正则表达式
- Logging API
assert关键字
3. 现代化转型与稳健期 (JDK 5 - 8)
Java SE 5.0 (2004-09-30) —— 语言大变革
- 语言特性:
- 泛型 (Generics)
- 注解 (Annotations)
- 枚举 (Enums)
- 自动装箱/拆箱
- 变长参数 (Varargs)
- 增强型 For 循环
- 核心类库:
- 引入
java.util.concurrent(并发包)、Scanner、StringBuilder
- 引入
- JVM:
- 引入虚拟机监控与管理 API (JMX)
- 官方明细: J2SE 5.0 New Features
Java SE 6 "Mustang" (2006-12-11) —— 稳健增强
- 语言特性:
- 引入 Compiler API (允许程序内调用 javac)。
- 核心类库:
- 脚本支持: 引入脚本引擎 API (JSR 223),内置 Rhino JavaScript 引擎。
- 数据库: JDBC 4.0 (支持自动加载驱动)。
- Web 服务: 集成 JAX-WS 2.0、JAXB 2.0。
- 桌面增强: 系统托盘 (System Tray)、启动画面 (Splash Screen) 支持。
- JVM (GC 演进):
- 引入偏向锁 (Biased Locking) 优化
- JDK 6u14 首次引入 G1 GC 实验版
- 官方明细: Java SE 6 Features and Enhancements
Java SE 7 (2011-07-28) —— 性能跃迁
- 语言特性:
- Project Coin (Switch 支持字符串、Try-with-resources)。
- JVM (GC 演进):
- G1 垃圾回收器正式版 (Production Ready),目标替代 CMS
- 核心类库:
- NIO.2 (Files/Path)
- Fork/Join 并行框架
- 官方明细: Java SE 7 Enhancements
Java SE 8 (LTS) (2014-03-18) —— 黄金版本
- 语言特性:
- Lambda 表达式
- 方法引用
- 接口默认方法
- 核心类库:
- Stream API
- 新的日期时间 API (
java.time) - Optional 类
- JVM:
- 永久代 (PermGen) 彻底移除,改用元空间 (Metaspace)
- 官方明细: What's New in JDK 8
4. 模块化与快速迭代时代 (JDK 9 - 16)
Java SE 9 (2017-09-21) —— 架构重构
- 核心架构:
- 模块化系统 (Project Jigsaw)。
- JVM (GC 演进):
- G1 成为默认垃圾回收器 (取代 Parallel GC)
- CMS 开始被弃用
- 核心类库:
- JShell (REPL)
- 集合工厂方法 (
List.of()) - 改进的 Process API
- 官方明细: What's New in JDK 9
Java SE 10 (2018-03-20)
- 语言特性:
- 局部变量类型推断 (
var) (JEP 323)
- 局部变量类型推断 (
- JVM (GC 演进):
- G1 引入并行全 GC (Parallel Full GC) (JEP 307),提升巨型对象处理性能
- 核心类库:
- Optional 新增 orElseThrow() 方法
- 新增创建不可变集合的 API (List.copyOf, Set.copyOf, Map.copyOf)
- Stream Collectors 新增 toUnmodifiableList/Set/Map 方法
- 安全:
- 引入 Root 证书 (JEP 319)
- TLS 支持 FFDHE 机制 (RFC 7919)
- TLS 会话哈希和扩展主密钥扩展支持 (RFC 7627)
- 工具:
- javadoc 支持多个样式表 (--add-stylesheet)
- javadoc 新增 --overridden-methods 选项
- javadoc 新增 {@summary} 内联标签
- 移除 javah 工具 (JEP 313)
- 移除 policytool 工具
- 官方明细: JDK 10 Release Notes
Java SE 11 (LTS) (2018-09-25) —— 现代基石
- 语言特性:
- Lambda 参数支持
var声明 (JEP 323) - 启动单文件源代码程序 (JEP 330)
- Lambda 参数支持
- JVM (GC 演进):
- 引入 ZGC (实验性) (JEP 333),可扩展的低延迟 GC,暂停时间不超过 10ms
- 引入 Epsilon GC (实验性) (JEP 318),No-Op 垃圾回收器
- 低开销堆分析 (JEP 331),通过 JVMTI 访问
- 基于嵌套的访问控制 (JEP 181)
- 核心类库:
- HTTP Client API 标准化 (JEP 321),支持 HTTP/2 和 WebSocket
- Unicode 10 支持 (JEP 327)
- 新增 Collection.toArray(IntFunction) 方法
- Locale 数据更新至 Unicode CLDR v33
- 安全:
- TLS 1.3 实现 (JEP 332)
- Curve25519 和 Curve448 密钥协商 (JEP 324)
- ChaCha20 和 Poly1305 加密算法 (JEP 329)
- Brainpool EC 支持 (RFC 5639)
- 增强 KeyStore 机制
- SunMSCAPI 新增 RSASSA-PSS 签名支持
- Kerberos 5 支持 AES 加密与 HMAC-SHA2 (RFC 8009)
- 移除:
- 移除 JavaFX (独立下载)
- 移除 Java Mission Control (独立下载)
- 移除 Applet 和 Web Start (部署栈)
- 移除 JRE 和 Server JRE (仅提供 JDK)
- 官方明细: JDK 11 Release Notes
Java SE 12 - 14 (2019-2020)
- 核心更新:
- JDK 12:
- Switch 表达式 (预览) (JEP 325)
- Shenandoah GC (实验性)
- 紧凑数字格式化 API (NumberFormat.getCompactNumberInstance)
- ZGC 并发类卸载
- Unicode 11 支持
- JVM 常量 API (JEP 334)
- Linux 支持 POSIX_SPAWN 进程启动
- 新增 JFR 安全事件
- TLS 支持 ChaCha20-Poly1305 加密套件
- 移除 finalize 方法 (FileInputStream, FileOutputStream, ZipFile, Inflator, Deflator)
- 移除 javac 对 Java 6 的支持
- JDK 13:
- 文本块 (Text Blocks, 预览) (JEP 355)
- Switch 表达式 (第二次预览) (JEP 354)
- ZGC 内存回收优化 (JEP 351),支持返回未使用内存给操作系统
- 动态 CDS 归档 (JEP 350)
- Unicode 12.1 支持
- 新增 FileSystems.newFileSystem(Path) 方法
- ByteBuffer 新增批量 get/put 方法
- 支持 X25519 和 X448 椭圆曲线 TLS 密钥交换
- TLS 支持无状态会话恢复 (RFC 5077)
- SunPKCS11 升级支持 PKCS#11 v2.40
- SunMSCAPI 支持 Windows CNG (Cryptography Next Generation)
- 新增 Reiwa (令和) 日本年号
- 移除 AWT toolkit 系统属性
- 移除 Runtime trace 方法
- JDK 14:
- Switch 表达式转正
- Records (预览) (JEP 359)
- 完全移除 CMS 回收器 (JEP 363)
- ZGC 支持 Windows 和 macOS (JEP 364, JEP 365)
- JFR 事件流 API (JEP 349)
- G1 NUMA 感知内存分配 (JEP 345)
- Parallel GC 性能优化
- Unicode 13 支持
- 会计货币格式支持
- 弱命名曲线默认禁用
- 移除 Pack200 工具和 API (JEP 367)
- 移除 java.security.acl API
- Thread.suspend/resume 方法标记为待移除
- JDK 12:
- 官方地址: [JDK Release Notes Index](https://www.oracle.com/java/technologies/javase/jdk-relnote s-index.html)
Java SE 15 (2020-09-15) —— GC 里程碑
- JVM (GC 演进):
- ZGC 和 Shenandoah GC 转正 (Production Ready)
- 语言特性:
- 文本块 (Text Blocks) 转正 (JEP 378)
- 密封类 (Sealed Classes, 预览) (JEP 360)
- 核心类库:
- 隐藏类 (Hidden Classes) (JEP 371),用于框架动态生成类
- CharSequence 新增 isEmpty 方法
- Unicode 13.0 支持
- SocketFlow 支持 SO_INCOMING_NAPI_ID (Linux 高性能网卡)
- TreeMap 优化 putIfAbsent/compute 等方法性能
- JMX 支持配置第三个本地端口
- 安全:
- jarsigner 新增 -revCheck 选项支持证书吊销检查
- SunJCE 支持 SHA-3 基于 Hmac 算法
- TLS 支持 certificate_authorities 扩展
- 支持 Kerberos 跨域 MSSFU 扩展
- 工具:
- jstatd 新增 -r 选项指定 RMI 端口
- jcmd 新增 GC.heap_dump gz 选项支持压缩堆转储
- jhsdb debugd 模式新增 RMI 端口配置选项
- 移除:
- 彻底移除 Nashorn JavaScript 引擎 (JEP 372)
- 移除 RMI 静态存根编译器 (rmic)
- 移除 Comodo 和 DocuSign 过期根证书
- 官方明细: JDK 15 Release Notes
Java SE 16 (2021-03-16)
- 语言特性:
- Records 转正 (JEP 395)
- instanceof 模式匹配转正 (JEP 394)
- 密封类 (第二次预览) (JEP 397)
- 核心类库:
- 外部链接器 API (孵化) (JEP 389),提供纯 Java 访问原生代码
- 外部内存访问 API (第三次孵化) (JEP 393)
- Unix 域套接字支持 (JEP 380)
- Vector API (孵化) (JEP 338),表达向量计算
- 添加强封装 JDK 内部 API (JEP 396),默认 --illegal-access=deny
- Stream 新增 toList() 方法
- InvocationHandler 新增 invokeDefault 方法支持代理默认方法
- DateTimeFormatter 新增日周期支持 (pattern 'B')
- macOS 支持 UserDefinedFileAttributeView
- JVM:
- ZGC 并发栈处理 (JEP 376),暂停时间降至数百微秒
- G1 并发内存回收,offload 内存返回给操作系统的开销
- 弹性 Metaspace (JEP 387),优化类元数据内存使用
- Ideal Graph Visualizer 现代化
- 新增 jdk.ObjectAllocationSample JFR 事件 (默认启用)
- 安全:
- jarsigner 支持 RSASSA-PSS 和 EdDSA 签名
- SUN/SunRsaSign/SunEC 支持 SHA-3 签名算法
- jarsigner 保留 POSIX 文件权限和 symlink 属性
- keytool 新增 -trustcacerts 和 -keystore 选项
- SunPKCS11 支持 SHA-3 相关算法
- TLS 支持 EdDSA 签名算法
- 改进证书链处理和 ALPN 编码
- 工具:
- jpackage 转正 (JEP 392),打包独立 Java 应用
- 移除:
- 移除实验性 AOT 工具 (jaotc) 和 Graal JIT 编译器
- 移除 Apple 遗留构建支持
- 移除 JFR 流媒体事件
- 移除 java.awt.PeerFixer
- 官方地址: JDK 16 Release Notes
5. 极致并发与模式匹配 (JDK 17 - 21)
Java SE 17 (LTS) (2021-09-14) —— 长期支持版
- 语言特性:
- 密封类 (Sealed Classes) 转正 (JEP 409)
- Switch 模式匹配 (预览) (JEP 406)
- JVM:
- 强封装 JDK 内部 API (JEP 396 最终实施)
- macOS/AArch64 支持 (JEP 391),支持 Apple Silicon M1
- Ideal Graph Visualizer 现代化,改进 C2 编译器可视化工具
- 新增类层次分析 (CHA) 实现,优化内联决策
- 统一日志支持异步日志刷新 (-Xlog:async)
- 实验性编译器 Blackholes 支持,用于基准测试
- 核心类库:
- 伪随机数生成器 (PRNG) 增强 (JEP 356),新增 LXM 算法和可跳跃 PRNG
- 外部函数与内存 API (孵化) (JEP 412),替代 JNI 调用原生库
- 十六进制格式化与解析工具 (HexFormat)
- 控制台字符集 API,返回控制台实际字符集
- 增强的多播支持,DatagramSocket 直接加入多播组
- 新增 java.time.InstantSource 接口
- macOS 支持 UserDefinedFileAttributeView 扩展属性
- 新增 native.encoding 系统属性
- 客户端:
- 新 macOS 渲染管线 (JEP 382),支持 Apple Metal API
- FileSystemView 新增 getSystemIcon API 支持大图标
- 安全:
- keytool -genkeypair 新增 -signer 选项支持指定签名者
- SunJCE 支持 AES Key Wrap (KW/KWP 模式)
- SunPKCS11 新增配置属性管理原生资源
- SunPKCS11 支持 ChaCha20-Poly1305 加密
- TLS 扩展支持系统属性配置
- Kerberos 支持 permitted_enctypes 回退
- 工具:
- javadoc 错误消息显示源代码行
- javadoc 新增"新 API"页面和改进的"已弃用"页面
- javadoc 包摘要页显示"相关包"
- 官方明细: JDK 17 Release Notes
Java SE 18 - 20 (2022-2023)
- 核心更新:
- JDK 18:
- 默认 UTF-8 编码 (JEP 400)
- 简单 Web 服务器 (jwebserver) (JEP 408)
- 核心反射使用 Method Handles 重新实现 (JEP 416)
- Internet 地址解析 SPI (JEP 418)
- javadoc 新增 @snippet 标签 (JEP 413)
- Vector API (第三次孵化) (JEP 417)
- 外部函数与内存 API (第二次孵化) (JEP 419)
- Switch 模式匹配 (第二次预览) (JEP 420)
- ZGC、SerialGC、ParallelGC 支持字符串去重 (JEP 192)
- 可配置 Card Table 大小
- G1 堆区域(Regions)大小上限提升至 512MB
- 新增 jdk.FinalizerStatistics JFR 事件
- SunPKCS11 支持部分 PKCS#11 v3.0 API
- Subject 新增 current 和 callAs 方法 (替代已弃用的 getSubject/doAs)
- KeyStore 新增 getAttributes 方法
- cacerts 从 JKS 迁移到无密码 PKCS12
- jarsigner 和 keytool 新增 -version 选项
- JDK 19:
- 虚拟线程 (Virtual Threads, 预览) (JEP 425)
- 结构化并发 (孵化) (JEP 428)
- 记录模式 (预览) (JEP 405)
- Switch 模式匹配 (第三次预览) (JEP 427)
- 外部函数与内存 API (预览) (JEP 424)
- Vector API (第四次孵化) (JEP 426)
- Unicode 14.0 支持
- 新增 stdout.encoding 和 stderr.encoding 系统属性
- HTTPS 支持 Kerberos 通道绑定令牌
- DateTimeFormatter 新增本地化模式格式
- HashMap/HashSet 等新增预分配工厂方法
- Linux/AArch64 支持 PAC-RET 保护
- 自动生成 CDS 归档 (-XX:+AutoCreateSharedArchive)
- Windows KeyStore 支持本地机器位置
- TLS/DTLS 签名方案自定义 API
- XML 新增 XPath 处理限制
- ThreadGroup 降级 (无法显式销毁)
- JDK 20:
- 作用域变量 (Scoped Values, 孵化) (JEP 429)
- 记录模式 (第二次预览) (JEP 432)
- Switch 模式匹配 (第四次预览) (JEP 433)
- 外部函数与内存 API (第二次预览) (JEP 434)
- Vector API (第五次孵化) (JEP 438)
- 虚拟线程 (第二次预览) (JEP 436)
- 结构化并发 (第二次孵化) (JEP 437)
- Unicode 15.0 支持
- G1 新增 Remark 和 Cleanup JFR MXBean
- 新增 jdk.InitialSecurityProperty 和 jdk.SecurityProviderService JFR 事件
- Poly1305 和 ChaCha20 支持 AVX512 内联函数
- javac 新增 lossy-conversions 警告
- TLS/DTLS 命名组自定义 API
- jmod 新增 --compress 选项
- DTLS 恢复使用 HelloVerifyRequest 消息
- 移除 Thread.suspend/resume/stop (改为抛出 UnsupportedOperationException)
- 改进 G1 并发优化线程控制
- URL 构造函数弃用
- JDK 18:
- 官方地址: JDK Release Notes Index
Java SE 21 (LTS) (2023-09-19) —— 虚拟线程时代
- 语言特性:
- 虚拟线程 (Virtual Threads) 转正 (JEP 444)
- 记录模式 (Record Patterns) 转正 (JEP 440)
- Switch 模式匹配转正 (JEP 441)
- 字符串模板 (预览) (JEP 430)
- 未命名模式和变量 (预览) (JEP 443),使用 _ 表示
- 未命名类和实例 main 方法 (预览) (JEP 445)
- 核心类库:
- 顺序集合 (Sequenced Collections) (JEP 431),统一访问首尾元素和反向迭代
- 键封装机制 API (JEP 452),用于保护对称密钥
- 外部函数与内存 API (第三次预览) (JEP 442)
- 结构化并发 (预览) (JEP 453)
- 作用域变量 (预览) (JEP 446)
- Vector API (第六次孵化) (JEP 448)
- Runtime.exec 和 ProcessBuilder 支持日志记录
- System.exit 和 Runtime.exit 日志记录
- Math 和 StrictMath 新增 clamp 方法
- String 新增 indexOf 范围搜索方法
- Character 新增 Emoji 属性方法
- String 和 Pattern 新增 splitWithDelimiters 方法
- StringBuilder 和 StringBuffer 新增 repeat 方法
- HttpClient 实现 AutoCloseable
- 支持 GB18030-2022 标准
- Pattern 支持 Emoji 二元属性
- JVM (GC 演进):
- 引入 分代 ZGC (Generational ZGC) (JEP 439),实验性,分离年轻代和老年代
- G1 最后 resort 全 GC 移动巨型对象,避免因连续空间不足导致 OOM
- 新增 JFR view 命令 (JDK-8306703),70+ 预定义视图
- 安全:
- 增强 OCSP、证书和 CRL 获取超时
- 新增 jdk.tls.maxHandshakeMessageSize 和 jdk.tls.maxCertificateChainLength 系统属性
- TLS 支持 certificate_authorities 扩展
- jarsigner 支持 -providerPath 选项
- ktab 新增选项提供非默认 salt
- 工具:
- 动态加载 Agent 时打印警告 (JEP 451)
- 官方明细: JDK 21 Release Notes
6. 前瞻性演进 (JDK 22 - 26)
Java SE 22 - 24 (2024-2025)
- 核心更新:
- JDK 22:
- 外部函数与内存 API (FFM API) 转正
- 未命名变量与模式
- 无类型 switch (预览)
- 字符串模板 (第二次预览)
- 流收集器 (预览)
- 类文件 API (预览)
- 结构化并发 (第二次预览)
- 作用域变量 (第二次预览)
- Vector API (第七次孵化)
- G1 区域锁定
- Unicode 15.1 支持
- JDK 23:
- ZGC 默认启用分代模式 (JEP 474),非分代模式标记为待废弃
- Markdown 文档注释支持 (JEP 467)
- 基本类型模式匹配 (预览) (JEP 455)
- 模块导入声明 (预览) (JEP 476)
- 灵活构造函数体 (第二次预览) (JEP 482)
- 未命名类和实例 main 方法 (第三次预览) (JEP 477)
- 类文件 API (第二次预览) (JEP 466)
- 流收集器 (第二次预览) (JEP 473)
- 结构化并发 (第三次预览) (JEP 480)
- 作用域变量 (第三次预览) (JEP 481)
- Vector API (第八次孵化) (JEP 469)
- Graal JIT 编译器可用
- javadoc 支持 JavaScript 模块
- 并行 GC 采用新的全 GC 算法
- 新增 Parallel GC Full GC 算法 (与 Serial GC 和 G1 相同)
- 支持 KeychainStore-ROOT Keystore
- 增强 Krb5 大小写敏感检查
- javac 新增 -Xlint:dangling-doc-comments 选项
- 改进 javadoc 结构导航
- 提供 JAXP 严格配置文件模板
- 增强 SunPKCS11 遗留机制检查
- 新增 jdk.SerializationMisdeclaration JFR 事件
- WatchService 支持配置最大事件数
- Instant 新增 until 方法支持 Duration 计算
- Console 新增带 Locale 参数的方法
- java.security.debug 支持 +timestamp 和 +thread 选项
- JDK 24:
- 灵活构造函数体转正 (JEP 493)
- 基本类型模式匹配 (第二次预览) (JEP 488)
- 模块导入声明 (第二次预览) (JEP 494)
- 简单源文件和实例 main 方法 (第四次预览) (JEP 495)
- 灵活构造函数体 (第三次预览) (JEP 492)
- 流收集器转正 (JEP 485)
- 类文件 API 转正 (JEP 484)
- 作用域变量 (第四次预览) (JEP 487)
- Vector API (第九次孵化) (JEP 489)
- 结构化并发 (第四次预览) (JEP 499)
- 紧凑对象头 (实验性) (JEP 450),减少对象头大小至 64 位
- G1 Late Barrier 扩展 (JEP 475),简化屏障实现
- AOT 类加载和链接 (JEP 483),提升启动时间
- 虚拟线程同步无阻塞 (JEP 491),消除 synchronized 导致的阻塞
- 密钥派生函数 API (预览) (JEP 478)
- 抗量子 ML-KEM 密钥封装机制 (JEP 496),FIPS 203 标准
- 抗量子 ML-DSA 数字签名算法 (JEP 497),FIPS 204 标准
- 准备限制 JNI 使用 (JEP 472),发布警告
- 永久禁用安全管理器 (JEP 486)
- 移除 ZGC 非分代模式 (JEP 490)
- 警告 sun.misc.Unsafe 内存访问方法 (JEP 498)
- Unicode 16.0 支持
- Reader 新增 of(CharSequence) 方法
- Process 新增 waitFor(Duration) 方法
- jar 工具新增 -k/--keep-old-files 选项
- jar 工具新增 -C/--dir 选项指定解压目录
- 新增 VirtualThreadSchedulerMXBean 监控虚拟线程调度器
- jcmd 新增 Thread.vthread_scheduler 和 Thread.vthread_pollers 命令
- 安全属性文件支持 include 指令
- RSASSA-PSS 签名标准哈希和 MGF 算法文档化
- SunPKCS11 支持 CKM_AES_CTS 机制
- TLSv1.3 可配置会话票据数量
- TLS 密码套件支持通配符匹配禁用
- javadoc 新增外部规范摘要页
- jpackage 支持 WiX Toolset v4 和 v5
- JDK 22:
- 官方地址: JDK Release Notes Index
Java SE 25 (LTS) (2025-09-16) —— 下一个里程碑
- 语言特性:
- 基本类型模式匹配 (第三次预览) (JEP 507)
- 模块导入声明转正 (JEP 511)
- 紧凑源文件和实例 main 方法 (JEP 512),未命名类转正
- 灵活构造函数体转正 (JEP 513)
- JVM (GC 演进):
- G1 优化 Remembered Set,通过共享 Card Sets 减少内存开销 (JDK-8343782)
- JVM 性能:
- 紧凑对象头 (Compact Object Headers) 转正 (JEP 519),不再需要实验性选项
- AOT 命令行优化 (JEP 514),简化 AOT 缓存创建
- AOT 方法分析 (JEP 515),提升 warmup 性能
- 核心类库:
- 结构化并发 (第五次预览) (JEP 505)
- 作用域变量转正 (JEP 506)
- 稳定值 (Stable Values, 预览) (JEP 502)
- Vector API (第十次孵化) (JEP 508)
- PEM 编码 (预览) (JEP 470),支持密钥和证书 PEM 格式
- 密钥派生函数 API (JEP 510)
- CharSequence 和 CharBuffer 新增 getChars 方法
- 新增 stdin.encoding 系统属性
- HttpClient 新增限制响应字节数的方法
- HttpResponse 新增 connectionLabel 方法
- ZIP FileSystem 支持只读模式
- ForkJoinPool 实现 ScheduledExecutorService
- CompletableFuture 和 SubmissionPublisher 使用 ForkJoinPool common pool
- Inflater 和 Deflater 实现 AutoCloseable
- 安全:
- java.security.debug 默认启用时间戳和线程详情
- 新增 SHAKE128-256 和 SHAKE256-512 MessageDigest 算法
- 支持 TLS Keying Material Exporters (RFC 5705, RFC 8446)
- 支持 HKDF 在 SunPKCS11 中
- 支持基于 TLS 范围禁用签名方案
- 监控:
- JFR CPU-Time 分析 (实验性) (JEP 509)
- JFR 协作采样 (JEP 518)
- 工具:
- 移除 Graal JIT (实验性功能)
- javadoc 增强结构化导航
- javac 改进注释处理
- 官方明细: JDK 25 Release Notes
Java SE 26 (2026-03-17) —— 最新版
- 核心更新:
- HTTP/3 支持: HTTP Client API 原生支持 HTTP/3 (JEP 517)
- JVM: AOT 对象缓存 (Ahead-of-Time Object Caching) 增强
- 移除: 彻底移除 Applet API (JEP 504)
- 官方明细: The Arrival of Java 26
7. 垃圾回收器 (GC) 演进总结表
| GC 名称 | 引入版本 (Exp) | 转正版本 (Prod) | 默认版本 | 关键里程碑 |
|---|---|---|---|---|
| Serial | JDK 1.0 | JDK 1.0 | - | 客户端模式默认 |
| Parallel | JDK 1.4 | JDK 1.4 | Pre-JDK 9 | 吞吐量优先,JDK 9 之前默认 |
| CMS | JDK 1.4 | JDK 1.4 | - | JDK 9 弃用,JDK 14 移除 |
| G1 | JDK 6u14 | JDK 7u4 | JDK 9 | 区域化回收,当前最通用默认 GC |
| ZGC | JDK 11 | JDK 15 | - | JDK 21 引入分代,JDK 23 默认分代 |
| Shenandoah | JDK 12 | JDK 15 | - | 低延迟,JDK 25 引入分代 |
8. 常用官方资源
- 所有版本发行说明总索引: Oracle JDK Release Notes Index
- Java 归档版本下载: Oracle Java Archive
- JEP 总览: JDK Enhancement Proposals Index
- OpenJDK 项目主页: openjdk.org
- OpenJDK 邮件列表: JDK Updates Dev
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 归园田居 的博客!
评论
正在加载评论...
