| title | Java主要发行版概述 | |
|---|---|---|
| date | 2018-11-21 02:56:52 -0800 | |
| tags | ||
| categories |
|
💠
-
- 1.1. Java5
- 1.2. Java6
- 1.3. Java7
- 1.4. Java8 LTS
- 1.5. Java9
- 1.6. Java10
- 1.7. Java11 LTS
- 1.8. Java12
- 1.9. Java13
- 1.10. Java14
- 1.11. Java15
- 1.12. Java16
- 1.13. Java17 LTS
- 1.14. Java18
- 1.15. Java19
- 1.16. Java20
- 1.17. Java21 LTS
- 1.18. Java22
- 1.19. Java23
- 1.20. Java24
- 1.21. Java25 LTS
- 1.22. Java26
- 1.23. Java27
💠 2026-09-16 20:52:46
泛型 枚举 装箱拆箱 静态导入 foreach
JDBC4.0 JAX-WS 2.0
- 语法糖:数字中的下划线
- 新的语言小特性:TWR(try with resources)
- 类文件格式的变化:注解
- JVM的新特性: 动态调用
- 引入G1收集器
- 接口中新增 静态方法,默认方法
- 新增 Optional
- 新增 Lambda
- 新增 Stream
- java.time 包 增强了日期时间的处理
- 181 子版本移除了 Derby
- Jigsaw 模块化
- Stream Optional 改进
- 内置 轻量级 JSON API
- HTTP2 客户端
- 云原生适配
- 默认GC更换为G1
- 类型推断
- String 类 API 增强
- 集合 API 增强
- Stream 增强
- Optional 增强
- java javac 合并
- Flight Recorder 开源
- Epsilon 空gc实现: 用于性能测试
- HttpClient 默认实现
Illegal reflective access by org.springframework.cglib.core.ReflectUtils
- 增加JVM参数 --add-opens java.base/java.lang=ALL-UNNAMED
- Switch Expressions (预览)
- Shenandoah GC: 低暂停时间垃圾收集器 (实验性)
- JVM Constants API
- 默认 CDS 归档
- G1 增强:
- 可中止的混合收集
- 及时返回未使用的已提交内存
- 微基准测试套件
- String API 增强:
indent()transform()
- Text Blocks (文本块) 预览版
- Switch Expressions 改进
- 重新实现 Socket API
- Dynamic CDS Archives 动态归档
- ZGC 增强: 取消提交未使用的内存
- Switch Expressions 正式版
- instanceof 模式匹配 (预览)
- Records 记录类型 (预览)
- Text Blocks 改进
- NullPointerException 增强: 更详细的异常信息
- 删除 CMS 垃圾收集器
- Text Blocks 正式版
- Sealed Classes 密封类 (预览)
- Hidden Classes 隐藏类
- Records 改进 (二次预览)
- instanceof 模式匹配 (二次预览)
- ZGC 和 Shenandoah GC 转正
- 移除 Nashorn JavaScript 引擎
- Records 正式版
- instanceof 模式匹配 正式版
- Sealed Classes (二次预览)
- Vector API (孵化器)
- 启用 C++14 语言特性
- ZGC 并发线程栈处理
- Unix-Domain Socket Channels
- Sealed Classes 正式版
- 恢复始终严格的浮点语义
- Pattern Matching for switch (预览)
- 移除 RMI Activation
- 弃用 Applet API
- 强封装 JDK 内部 API
- Context-Specific Deserialization Filters
jdeps --jdk-internals --multi-release 17 --class-path . encloud-api.jar 分析依赖的废弃api
- UTF-8 默认字符集
- Simple Web Server 简单 Web 服务器
- 代码片段 Javadoc 标签
- Pattern Matching for switch (二次预览)
- Vector API (三次孵化)
- 弃用 Finalization 机制
- 互联网地址解析 SPI
- Record Patterns (预览)
- Pattern Matching for switch (三次预览)
- Virtual Threads 虚拟线程 (预览)
- Structured Concurrency 结构化并发 (孵化)
- Vector API (四次孵化)
- Foreign Function & Memory API (预览)
- Record Patterns (二次预览)
- Pattern Matching for switch (四次预览)
- Virtual Threads (二次预览)
- Structured Concurrency (二次孵化)
- Scoped Values (孵化)
- Vector API (五次孵化)
- 字符串模板
语法糖(预览) - 分代ZGC
- 虚拟线程 正式版
协程 轻量级线程 用户级线程 - Sequenced Collections 有序集合
- Record Patterns 正式版
- Pattern Matching for switch 正式版
- Structured Concurrency (预览)
- Scoped Values (预览)
- Unnamed Variables & Patterns 未命名变量和模式 (预览)
- String Templates 字符串模板 (二次预览)
- Statements before super() 构造函数中 super() 之前可以使用语句 (预览)
- Foreign Function & Memory API (预览)
- Region Pinning for G1 GC: G1 GC 区域固定
- Structured Concurrency (二次预览)
- Scoped Values (二次预览)
- Stream Gatherers (预览)
- Primitive Types in Patterns 模式中的基本类型 (预览)
- Module Import Declarations 模块导入声明 (预览)
- Markdown Documentation Comments Markdown 文档注释 (预览)
- Flexible Constructor Bodies 灵活的构造函数体 (二次预览)
- Stream Gatherers (二次预览)
- Structured Concurrency (三次预览)
- Scoped Values (三次预览)
- Class-File API (预览)
- ZGC: 分代模式成为ZGC的默认策略
- Late Barrier Expansion for G1 G1 延迟屏障扩展
- Stream Gatherers (三次预览)
- Flexible Constructor Bodies (三次预览)
- Structured Concurrency (四次预览)
- Scoped Values (四次预览)
- Module Import Declarations (二次预览)
- Vector API (八次孵化)
- JEP 491: Synchronize Virtual Threads without Pinning
修复了pinned问题
语言特性
- JEP 511: Module Import Declarations 模块导入声明,用一条 import 语句简洁地导入模块导出的所有包
- JEP 512: Compact Source Files and Instance Main Methods 紧凑源文件与实例 main 方法,让初学者无需理解 public/static 等复杂修饰符即可编写第一个程序
- JEP 513: Flexible Constructor Bodies 灵活的构造函数体,允许在构造器中显式 super() 调用之前出现语句
- JEP 507: Primitive Types in Patterns, instanceof, and switch (Third Preview) 模式、instanceof 和 switch 中的基元类型(第三次预览)
库
- JEP 506: Scoped Values 作用域值(正式版),在线程及其子线程间共享不可变数据,比 ThreadLocal 更易理解、开销更低
- JEP 505: Structured Concurrency (Fifth Preview) 结构化并发(第五次预览),把相关多线程任务组视作整体工作单元,简化错误处理与取消
- JEP 502: Stable Values (Preview) 稳定值(预览),持有不可变数据并被 JVM 视为常量,初始化时机比 final 字段更灵活
- JEP 508: Vector API (Tenth Incubator) 向量 API(第十次孵化),在支持的 CPU 上编译为最优向量指令
- JEP 510: Key Derivation Function API 密钥派生函数(KDF)API,从密钥和其他数据派生新密钥
安全库
- JEP 470: PEM Encodings of Cryptographic Objects (Preview) 加密对象的 PEM 编码 API(预览),简化密钥、证书和证书吊销列表的编码与解码
性能更新
- JEP 521: Generational Shenandoah 分代 Shenandoah GC 从实验性转为产品特性
- JEP 519: Compact Object Headers 紧凑对象头从实验性转为产品特性,减少堆内存占用、提升数据局部性
诊断与观测(JFR)
- JEP 509: JFR CPU-Time Profiling (Experimental) JFR CPU 时间剖析(实验性),在 Linux 上捕获更精确的 CPU 时间分析信息
- JEP 518: JFR Cooperative Sampling JFR 协作式采样,仅在安全点遍历调用栈,提升异步采样 Java 线程栈的稳定性
- JEP 520: JFR Method Timing & Tracing JFR 方法计时与跟踪,借助字节码插桩实现方法级计时和跟踪
Project Leyden 特性
- JEP 514: Ahead-of-Time Command-Line Ergonomics AOT 命令行易用性,简化常用场景下创建提前缓存以加速启动的命令
- JEP 515: Ahead-of-Time Method Profiling AOT 方法剖析,让上一次运行的方法执行档案在 JVM 启动时立即可用,加快预热
清理特性
- JEP 503: Remove the 32-bit x86 Port 移除 32 位 x86 端口的源码和构建支持(JDK 24 已标记弃用)
语言特性
- JEP 530: Primitive Types in Patterns, instanceof, and switch (Fourth Preview) 模式、instanceof 和 switch 中的基元类型(第四预览版),消除基元类型在模式匹配中的限制,增强编译器错误检测
性能更新
- JEP 522: G1 GC — Improve Throughput by Reducing Synchronization 通过双卡表减少写屏障的同步开销,提高 G1 垃圾收集器的吞吐量
Project Leyden 特性
- JEP 516: Ahead-of-Time Object Cache for Any GC 支持任意 GC 的提前对象高速缓存,加快 Java 应用启动速度
库
- JEP 500: Prepare to Make
finalMeaningful 对通过深度反射修改 final 字段发出警告,强化 Java 的"默认完整性"原则 - JEP 517: HTTP/3 Support for the HTTP Client API 为 HTTP 客户端 API 新增 HTTP/3 协议支持,降低延迟
- JEP 526: Lazy Constants (Second Preview) 延迟常量 API,JVM 将其视为真正常量以实现 final 字段级别的性能
- JEP 525: Structured Concurrency (Sixth Preview) 结构化并发,将多线程任务组视作整体工作单元,降低线程泄漏和取消延迟风险
- JEP 529: Vector API (Eleventh Incubator) 向量 API,编译为 CPU 最优向量指令,加速数据分析、AI 推理
安全库
- JEP 524: PEM Encoding of Cryptographic Objects (Second Preview) 加密对象的 PEM 编码 API,简化加密设置和集成
清理特性
- JEP 504: Remove the Applet API 正式移除 Applet API(JDK 17 标记待移除)
语言特性
- JEP 532: Primitive Types in Patterns, instanceof, and switch (Fifth Preview) 模式、instanceof 和 switch 中的基元类型(第五预览版),允许基元类型出现在所有模式上下文,并扩展 instanceof 与 switch 支持全部基元类型
性能更新
- JEP 523: Make G1 the Default Garbage Collector in All Environments 让 G1 在所有环境(而不只是服务器环境)中成为默认垃圾收集器
- JEP 534: Compact Object Headers by Default 默认启用紧凑对象头,在 64 位架构上将对象头从 96 位降至 64 位,减少堆占用、提升部署密度和数据局部性
诊断与观测(JFR)
- JEP 536: JFR In-Process Data Redaction JFR 进程内数据脱敏,在数据离开进程前对命令行参数、环境变量和系统属性的初始值进行脱敏,避免敏感信息泄露
库
- JEP 531: Lazy Constants (Third Preview) 延迟常量(第三次预览),JVM 将其视为真正常量以获得 final 字段级别的性能,同时初始化时机更灵活
- JEP 533: Structured Concurrency (Seventh Preview) 结构化并发(第七次预览),将多线程任务组视作整体工作单元,简化错误处理与取消,提高可靠性与可观测性
- JEP 537: Vector API (Twelfth Incubator) 向量 API(第十二次孵化),在支持的 CPU 上编译为最优向量指令,加速数值计算
安全库
- JEP 527: Post-Quantum Hybrid Key Exchange for TLS 1.3 TLS 1.3 后量子混合密钥交换,将抗量子算法与传统算法结合,默认抵御未来量子计算攻击
- JEP 538: PEM Encodings of Cryptographic Objects (Third Preview) 加密对象的 PEM 编码 API(第三次预览),简化密钥、证书和证书吊销列表的编码与解码