☕ Java 26 新特性详解 - JEP 全面更新
★★★★ 4星
Java 26 带来了多项重要更新!相比之前的版本,这次的功能集稍小,但这只意味着一件事:该版本的重点是为即将发布的重大功能提供坚实基础!作者希望 Project Valhalla 的第一批 JEP 能在今年晚些时候宣布。
📋 JEP 概览
| JEP | 标题 | 状态 | 项目 | 类型 |
|---|---|---|---|---|
| 500 | Prepare to Make Final Mean Final | Core Libs | Deprecation | |
| 504 | Remove the Applet API | Client Libs | Deprecation | |
| 516 | Ahead-of-Time Object Caching with Any GC | 新功能 | HotSpot | 性能 |
| 517 | HTTP/3 for the HTTP Client API | 新功能 | Core Libs | 扩展 |
| 522 | G1 GC: Improve Throughput by Reducing Synchronization | 新功能 | HotSpot | 性能 |
| 524 | PEM Encodings of Cryptographic Objects | 第二预览 | Security Libs | 安全 |
| 525 | Structured Concurrency | 第六预览 | Loom | 并发 |
| 526 | Lazy Constants | 第二预览 | Core Libs | 新API |
| 529 | Vector API | 第十一孵化 | Panama | 新API |
| 530 | Primitive Types in Patterns, instanceof, and switch | 第四预览 | Amber | 语言 |
🚀 核心新特性
JEP 516: Ahead-of-Time Object Caching 支持任意 GC
之前 ahead-of-time 缓存使用 GC 特定格式,导致与 ZGC 等其他垃圾收集器不兼容。JEP 516 通过将内存地址替换为逻辑索引来解决这个问题,使缓存成为 GC 无关格式。
- 支持 ZGC 和任何其他垃圾收集器
- 使用流式加载将逻辑索引转换回内存地址
- 自动选择格式:训练时使用 ZGC 或堆 >32GB 则使用新格式
JEP 517: HTTP/3 支持
HTTP Client API 正式支持 HTTP/3 协议,提供更低的延迟和更好的可靠性。
JEP 522: G1 GC 同步优化
G1 GC 自 Java 9 以来一直是默认垃圾收集器。JEP 522 通过减少应用程序线程和 GC 线程之间的同步来提高吞吐量和延迟。
JEP 525: 结构化并发(第六预览)
Project Loom 的核心特性,允许以更直观的方式管理并发任务。
JEP 529: Vector API(第十一孵化)
Project Panama 的一部分,提供向量计算能力,为 Project Valhalla 做准备。
JEP 530: 原始类型匹配(第四预览)
Project Amber 允许在 instanceof、switch 和 pattern matching 中使用原始类型。
💡 核心洞察
"Java 26 为 Project Valhalla(值类型)做准备,许多更改是为第一个 Valhalla 特性做准备。"
— hanno.codes
Java
JEP
JVM
Valhalla
HTTP/3
G1 GC