JDK 25 新特性概览 长期支持版本(LTS)

2025-12-12 02:38:49

JDK 25 新特性概览

发布日期:2025 年 9 月 16 日

类型:长期支持版本(LTS)

总览

JDK 25 包含约 18 项 JEP(Java Enhancement Proposals)新特性,这些特性覆盖语言语法、并发模型、JVM 性能优化、安全性增强等多个方面。

新特性详解

以下是几个重要的新特性及其作用/影响:

特性

状态

描述

优势 / 注意事项

紧凑源文件 & 实例主方法(Compact Source Files and Instance Main Methods,JEP 512)

最终特性

简化 Java 程序入口,可写无类声明的 void main() 方法;引入 java.lang.IO 简化控制台 I/O;自动导入 java.base 模块中的公共顶级类等。

降低入门门槛,对脚本、教学、原型开发等非常友好。注意兼容性方面,静态导入等行为有调整。

原始类型模式匹配(Primitive types in patterns, instanceof, switch,JEP 507)

第三次预览

支持在 instanceof、switch 等上下文中匹配原始类型(如 int, boolean 等)。

减少装箱/拆箱代码,增强语法表达力;仍是预览,可能会有语义或兼容性细节需要小心。

结构化并发(Structured Concurrency)

预览

将多个相关任务当做一个 “工作单元” 管理,简化错误处理和取消操作。

提高并发代码的可靠性和资源管理;预览阶段,API 可能还有调整。

作用域值(Scoped Values)

概念推出中

用来在线程内或跨线程共享不可变状态,比 ThreadLocal 更轻量、生命周期绑定作用域避免内存泄漏。

性能优势(内存/速度),特别在使用虚拟线程时;但旧代码迁移可能要注意。

紧凑对象头(Compact Object Headers)

正式特性

将对象头从默认大小压缩,从而节省内存。

对于大量小对象场景效果显著;某些与对象头布局强相关的工具或库可能受影响。

Shenandoah 垃圾收集器的分代模式(Generational Shenandoah GC)

正式特性

在 Shenandoah GC 中加入 “代” 的概念(年轻代/老年代)以优化 GC 性能。

减少停顿时间,提高性能;需要在 JVM 启动参数中启用相应模式。

Flight Recorder (JFR) 增强

实验/预览

包含:在 Linux 上支持 CPU‐time profiling;合作抽样(cooperative sampling);方法级别的时间测量与追踪等。

更精细的性能数据帮助调优;可能有平台差异或开销,需要评估。

安全 / 加密相关增强

预览/标准化中

引入 PEM 编码/解码 API;抗量子密钥封装机制(ML-KEM)和抗量子数字签名算法(ML-DSA)等。

提升算法现代性和未来抗量子安全性;预览功能,可能会有 API 变动或性能考量。

移除 / 弃用

正式

移除对 32 位 x86 平台支持。

如果部署环境还在使用 32 位 x86,需要评估迁移成本。

部分其他改进/特性列表

模块导入声明(Module Import Declarations)预览功能。

密钥派生函数 API(Key Derivation Functions API)预览。

向量 API(Vector API)的增强/稳定性改进。

JDK 启动时的 Ahead-Of-Time 方法分析/缓存改进,以加快启动与预热时间。

升级建议 / 注意事项

虽然许多新特性十分有用,但其中一些仍处于预览阶段。若用于生产环境,要评估风险、测试兼容性。

某些语言特性(如原始类型模式匹配、结构化并发等)的 API 在未来版本可能有变动。

性能/内存优化特性(如紧凑对象头、Shenandoah 分代 GC)开启时可能需要额外监控和调优。

部署环境方面要确认平台支持,比如移除了 32 位 x86 支持。

若项目依赖第三方库或工具,这些库/工具可能依赖对象头布局、工具链假设等,升级可能会引入兼容性问题。

结语

JDK 25 是一个里程碑式的版本,作为新的 LTS,其带来了语言学习曲线的简化、并发与性能的大幅提升,以及现代安全性的加强。对于新项目或那些能接受预览特性、愿意投入适当测试/调整的现有项目,升级会有很高的价值。

如何取消打印作业? - 爱普生产品常见问题 - 爱普生中国
《如龙》中文门户网站上线:游戏作品时间线整理