2025年9月16日,Oracle 正式发布Java25,这是备受欢迎的编程语言和开发平台的全新版本。
JDK 10 新特性(2018年3月):非长期版本
- 局部变量类型推断(var)
- 不可变集合的改进
- 垃圾回收器 G1的并行全垃圾回收
- 线程本地握手
- Optional新方法:orElseThrow
- 类数据共享
- Unicode 语言标签扩展
- 根证书
- 密封类 (Sealed Classes):让你能更精确地控制哪些类可以继承或实现你的类,增强了代码的安全性和可维护性。
- 模式匹配:在
instanceof和switch中应用,简化了类型判断和转换的代码。 - 垃圾回收优化:G1 和 ZGC 的改进,并支持将闲置的堆内存归还给操作系统,有助于提升应用性能。
JDK 11 新特性(2018年3月)(LTS):支持至2026年9月(免费)
- 新的字符串处理方法
- 局部变量语法用于 Lambda 参数
- 新的 HTTP Client AP|(HTTP/1.1、HTTP/2 和 WebSockets 支持)
- 单- Java 文件的直接运行
- ZGC:可伸缩的低延迟垃圾收集器
- TLS 1.3 支持
- Flight Recorder
- Stream,Optional,集合 AP|的增强
JDK 17 新特性(2018年3月)(LTS):支持至2029年9月(免费)
- 密封类 (Sealed Classes):让开发者能更精确地控制哪些类可以继承或实现你的类,增强了代码的安全性和可维护性。
- 模式匹配:在
instanceof和switch中应用,简化了类型判断和转换的代码。 - 垃圾回收优化:G1 和 ZGC 的改进,并支持将闲置的堆内存归还给操作系统,有助于提升应用性能。
JDK 21新特性(2023年9月)(LTS):支持至2031年9月(免费)
- 顺序集合(Sequenced Collections)
- 分代ZGC改进
- 记录模式强化
- switch中的模式匹配增强
- 引入虚拟线程
- 弃用 Windows 32位 x86 移植
- 禁止动态加载代理
- Curve25519和Curve448密钥协议
- 预览特性包括字符串模板、外部函数和内存 API(第三次预览)等
- 虚拟线程 (Virtual Threads):这是来自 Project Loom 的轻量级线程,可以大幅提升高并发 I/O 密集型应用的可扩展性。
- 分代 ZGC:进一步降低了垃圾回收的延迟。
- 结构化并发 (预览):简化了并发任务的管理,让多线程代码更易于编写和维护。
JDK 25新特性(2025年9月)(LTS):支持至2033年9月(免费)
-
语言增强
- 简化
main方法:支持void main()和紧凑源文件格式,无需显式类声明。void main(){ System.out.println("Hello World"); }也可以
public class Test { void main(){ System.out.println("Hello World"); } } - 灵活构造函数体:不再强制要求
super()或this()必须是构造函数的第一条语句,增加了初始化的灵活性。允许在super()前执行参数校验,提升对象构建安全性。public sealed class Test permits Apple { String string = "1"; void display() { System.out.println("Hello World"+string); } } non-sealed class Apple extends Test{ private long timestamp; public Apple(){ System.out.println("Hello World"); super(); System.out.println("Hello World"+string); } public Apple(String name){ System.out.println("Hello World"); if (name == null || name.isBlank()) { throw new IllegalArgumentException("名称不能为空"); } this.timestamp = System.currentTimeMillis(); super(); System.out.println("Hello World"+string); } } class Demo extends Apple {} - 模块一次性导入:通过
import module java.base导入整个基础包。import module java.base; - 基本类型模式匹配:在
switch和instanceof中直接支持基本类型,减少了拆箱和类型转换的样板代码。class Demo extends Apple { int ints = 1; String result = switch (ints) { case 1 -> "1"; default -> "未知"; }; void main(){ println(result); } } - JDK 25.0.1版本修复了
java.time模块的序列化问题,早期版本可能导致反序列化失败。建议升级至最新补丁版本。
- 简化
-
性能与并发
- 结构化并发 (预览):与虚拟线程结合,为编写并发程序提供了更强大的工具。打包管理多任务,避免线程泄漏。
- 作用域值ValueScope:提供了更优的线程内数据共享方式。比
ThreadLocal节省40%内存。解决、与synchronized的集合类(如Hashtable)结合使用时,可能引发平台线程固定,导致性能下降或死锁,替换为ReentrantLock或使用JDK 25的ScopedValues替代ThreadLocal - 分代Shenandoah GC:大内存应用停顿减少30%。
- 紧凑源文件:支持更简洁的类声明方式,适合快速原型和小型工具。
-
安全与AI支持
- 后量子加密:抵御量子计算机攻击。
- 向量API第十次迭代:AI推理速度显著提升。
- 诊断参数风险:启用
-Djdk.tracePinnedThreads可能引发JVM僵死,需谨慎使用
Java 25 (Oracle JDK25 ) 提供了数千项改进,不仅可显著提高开发人员的工作效率,还增强了平台的性能、稳定性和安全性,以此帮助企业加快业务增长。此外,Oracle 将为 Java 25 提供长达至少 8 年的长期支持服务,支持至2033年9月(免费)。
IDC 软件开发研究副总裁 Arnal Dayaratna 表示: “随着 Java 迈入第四个十年,它将继续交付更多先进特性来确保应用,包括 AI 驱动型应用和集成了 AI 功能的应用,在各种硬件平台上高效运行并实现出色的可扩展性。Oracle 将继续引领 Java 编程语言和 Java 平台不断发展,尤其是在 AI 和安全性方面。Oracle 也将坚持一贯的 6 个月一次的更新节奏,为进一步加速创新贡献自己的力量。我们相信 Java 能够持续交付现代化特性,出色满足新一代 AI 驱动型应用的开发需求。”
Oracle Java Platform 高级副总裁兼 OpenJDK 管理委员会主席 Georges Saab 表示: “今年是 Java 的 30 周年,也是 Java 发展史上的一个重要里程碑。未来,Java 平台和语言将进一步发展,帮助开发人员轻松、快速地构建融合了创新型 AI 和安全性功能的应用。Java 25 凸显了 Oracle 长期以来在 Java 上的不懈投入。Oracle 不仅从 Java 特性和功能上着手来驱动 AI 解决方案,还简化语言,让新手开发人员和 IT 团队更容易学习与使用 Java。”
Oracle 计划为 Java 25 提供长达至少 8 年的长期支持,这将赋予各类组织出色的灵活性,既能够以尽可能少的维护投入在更长时期内运行相关应用,同时能够按自身节奏有条不紊地进行迁移。按照计划,Oracle JDK 25 将根据《Oracle 免费条款和条件》(NFTC) 获得季度性安全和性能更新直至 2028 年 9 月。随后,Oracle JDK 25 将按照 Java SE OTN 许可协议发布更新直至 2033 年 9 月。
Oracle JDK 25 语言特性
- JEP 507: Primitive Types in Patterns, instanceof, and switch(第三预览版)— 通过使 Java 更加统一且更具表达能力,帮助开发人员提高 Java 编程的工作效率。例如,开发人员可以消除他们在使用模式匹配、instanceof 和 switch 时遇到的基元类型的限制,从而增强模式匹配。该功能还在所有模式上下文中支持基元类型模式,并扩展 instanceof 和 switch,使其能够与所有基元类型一起使用。基元类型支持将尤其有益于开发人员构建集成了 AI 推理功能的应用。
- JEP 511: Module Import Declarations — 开发人员可以轻松导入由模块导出的所有程序包,无需将导入代码放到模块中,从而提高工作效率。这简化了所有开发人员对模块化库的重用,让初学者能够使用第三方库和基本 Java 类而无需了解它们在程序包层次结构中的位置。此外,开发人员还可以在使用模块所导出 API 的多个部分时,避免多项按需类型导入声明的噪声 — 这有益于综合使用 AI 推理和来自多个流行库的工作流的简单应用。
- JEP 512: Compact Source Files and Instance Main Methods — 针对 Java 编程提供一个流畅的启动入口,帮助初学者以及系统和 IT 管理员更轻松地使用 Java 语言。这使学生无需了解针对大型程序而设计的语言特性,即可简单编写自己的第一个程序,随后在技能增长过程中不断完善代码。此外,非 Java 专家型系统和 IT 管理员可以简单编写小型程序,如脚本和命令行实用程序。
- JEP 513: Flexible Constructor Bodies — 允许在显式调用构造函数前执行输入验证和安全计算,帮助开发人员提高代码安全性和可靠性。通过支持更自然的构造函数表达式和在字段对其他类代码(例如从一个超类构造函数调用的方法)可见前进行字段初始化,这可以提高代码安全性。此外,该特性还保留了现有的保证,即子类构造函数中的代码不会干扰超类实例化,能够提高可靠性。
Oracle JDK 25 库
- JEP 505: Structured Concurrency(第五预览版)— 简化并发编程,帮助开发人员提高多线程代码的可维护性、可靠性和可观察性。通过将在不同线程中运行的相关任务组视为单个工作单元,结构化并发可以降低因取消和关闭而产生的常见风险,例如线程泄漏和取消延迟。这尤其有益于通常需要并行运行多项任务的 AI 开发工作。
- JEP 506: Scoped Values — 支持开发人员在线程内和线程之间共享不可变数据,从而提高项目的易用性、可理解性、性能和稳健性。这尤其有益于使用了 AI 平台、Web 框架和微服务的应用。此外,作用域值相比线程局部变量更易于推理,空间和时间成本更低,尤其是当与虚拟线程和结构化并发共同使用时。
- JEP 502: Stable Values(预览版)— 为稳定值(保存不可变数据的对象)引入一个 API,帮助开发人员提高灵活性。由于 Java Virtual Machine 将稳定值视为常量,稳定值可实现与声明一个字段为 final 时同等的性能优化,同时提供更高的初始化时机灵活性。
- JEP 508: Vector API(第十次孵化阶段)— 通过一个 API,以一种在运行时可靠地编译为受支持 CPU 架构上的优化向量指令的方式来表达向量计算,帮助开发人员提高生产力。因此,开发人员可以实现优于等效标量计算的表现,这些计算通常用于 AI 推理和计算场景。
Oracle JDK 25 安全库
- JEP 470: PEM Encodings of Cryptographic Objects(预览版)— 通过一个新的用于对象编码的 API 帮助开发人员提高工作效率。该 API 不仅可对表示加密密钥、证书和证书吊销列表的对象编码,将其转化为已得到广泛应用且具有增强型隐私保护的邮件传输格式,还能从邮件传输格式解码回对象。这使开发人员可以更轻松地将 Java 应用和安全验证系统/设备(例如 Yubikey)集成在一起。
- JEP 510: Key Derivation Function API — 为密钥派生函数(使用密码学算法,从一个密钥和其他数据中派生出更多密钥)提供一个 API,帮助开发人员为新兴的量子计算环境做好准备。这为支持混合公钥加密提供了一个必要的构建块,有助于平稳过渡到量子安全加密。
Oracle JDK 25 性能更新
- JEP 519: Compact Object Headers — 在 64 位架构上将对象标头大小缩减至 64 位,帮助开发人员提高工作效率。这在降低实际工作负载上对象大小和内存占用的同时,还有助于提高部署密度和增强数据局部性。
- JEP 514: Ahead-of-Time Command-Line Ergonomics — 更轻松地创建 Ahead-of-Time 缓存而无表达能力丢失,帮助开发人员提高工作效率。这将简化常见用例所需的命令,加快 Java 应用的启动速度。
- JEP 515: Ahead-of-Time Method Profiling — 提高应用性能,帮助开发人员提高工作效率。通过将初始方法执行概要信息的收集从生产运行转移到训练运行,并通过 Ahead-of-Time 缓存传送概要信息,预热时间得以缩短。这使 JIT 编译器得以在应用启动时即时生成本机代码,而不是一直等到概要信息收集完毕。它还消除了对应用代码、库或框架的所有修改需求,消除了对应用执行的所有限制。
Oracle JDK 25 监视功能更新
- JEP 509: JFR CPU-Time Profiling(实验版)— 增强 JDK Flight Recorder (JFR) 来捕获更准确的 Linux 平台上 CPU 时间分析信息,识别待优化的程序元素,从而帮助开发人员提高工作效率和程序效率。
- JEP 518: JFR Cooperative Sampling — 增强 JFR 在异步执行 Java 线程堆栈采样时的稳定性,帮助开发人员提高代码可靠性。这使 JFR 可以尽可能减少事件采样器中的安全点偏差,同时避免在安全点之外生成用于堆栈跟踪的风险性启发函数。它还允许创建样本请求来响应硬件事件,或在信号处理函数中创建样本请求,降低采样器线程的必要工作量。
- JEP 520: JFR Method Timing & Tracing — 允许开发人员识别应用性能瓶颈、优化代码以及查找错误根因,帮助开发人员提高工作效率。这是通过使用字节码增强来扩展 JFR,使 JFR 得以进行方法时间分析和跟踪实现的。
Java 25 的特性是 Oracle 与全球 Java 开发人员社区成员通过 OpenJDK 社区和 Java Community Process (JCP) 共同合作的成果。有关 Java 25 特性的更多信息,请阅读 Java 25 技术博客文章。 此外,欢迎关注将于 2026 年 3 月 17-19 日在美国加利福尼亚州红木海岸举办的 JavaOne 2026 大会,了解全球社区带来的 Java 前沿创新功能。
IDC 现代软件开发和开发者趋势研究经理 Adam Resnick 表示: “自 30 年前诞生以来,Java 一直是构建大型企业级应用程序的可靠且安全的语言。正如今年 JavaOne 大会上所强调的那样,Java 有望在新手开发者和编程学生中进一步普及。简化复杂性并提供即时反馈的新功能,使构建初级程序变得更加容易。Java 的持续演进体现了一种深思熟虑的平衡,在保持企业级解决方案所需的稳健性的同时,也使其更容易被经验不足的开发者所接受。”
云端创新赋能全球 Java 社区
Oracle Cloud Infrastructure (OCI) 是一个支持 Java 25 的超大规模云技术平台,当 Java 部署在 OCI 中,可带来更出色的性能、效率、创新以及成本节约。通过在 OCI 上免费提供 Oracle Java SE 以及 Java SE Subscription Enterprise Performance Pack 等高级特性,Java 25 助力开发人员构建和部署速度更快、更出色且经过优化的应用。
Oracle Java SE Universal Subscription 可为客户提供优质的支持服务。该产品包含了 Java SE Subscription Enterprise Performance Pack,提供对整个 Java 产品组合的支持、Java Management Service 以及按业务计划进行升级的灵活性。这有助于 IT 团队管理复杂性、降低安全风险并控制成本。
除了基于 OCI 的 Java 和 Java Universal SE Subscription 外,Java 25 还将驱动更出色的应用性能,将通过广泛的 AI 和安全性功能,包括后量子加密 (PQC) 支持,来增强 Java SE Platform 实施和 JDK 的性能、稳定性以及安全性。
来自全球 Java 社区的众多领导者喜迎 Oracle JDK 25
Gradle, Inc. 倡导主管 Trisha Gee 表示: “当 Java 开始每 6 个月发布一个新版本时,我们很难想象它可以将有趣的新特性拆分成足够小的元素来交付,预感到一些新版本可能不会带来很多新特性。事实证明,我们错了。如今,每一个 Java 新版本都带来了有趣且切实有用的特性,出色展示了如何将大型功能拆分为小的独立特性。例如,各种模式匹配特性自成一体,是独立交付的,但综合起来却是一个梦幻般的 Java 新特性集,为开发人员思考如何解决问题提供了一种新的方法。我相信 Java 将会越来越强大。”
古斯塔夫·埃菲尔大学 (Université Gustave Eiffel) 副教授 Rémi Forax 表示:“JEP 512 带来了‘紧凑源文件和实例主方法’,能够为初学者显著简化 Java,允许初学者在不使用传统样板代码 public static void main(String[] args) 的情况下编写程序。现在,学生用户可以从简单程序入手,然后在成长过程中逐步扩展到更高级概念。这是一种更平稳的,从基本编程概念到完全面向对象编程的学习路径。”
圣何塞州立大学 (San José State University) 名誉教授 Cay Horstmann 表示:“我喜欢 Java 25 的紧凑源文件、实例主方法和模块导入声明,这些特性能够降低新手程序员在 Java 上的进入门槛,还有益于资深程序员将 Java 扩展到日常小型任务。我发现使用 Java 这一具有工业强度,而且有强大的工具支持为后盾的强类型语言来重写脆弱的 Shell 和 Python 脚本可以取得令人满意的效果。”
Java Specialists’ Newsletter 撰稿人 Heinz M. Kabutz 博士表示: “当宣布从 Java 9 开始每 6 个月发布一次特性时,我曾持怀疑态度。Oracle 能做到这一点吗?我有自己的疑虑,因为我们已经习惯了每三年发布一个新版本。但事实证明 Oracle 怀着对 Java 的满腔热忱做到了。在 Oracle 的领导下,在一个庞大社区的推动下,Java 超越了其他语言。Java 的记录、紧凑源文件、模块导入特性大大降低了 Java 的入门难度,同时虚拟线程、外部内存 API、向量 API 和 ZGC 使 Java 能够被用于构建技术先进的可扩展系统。”
XDEV Software GmbH 首席执行官 Richard Fichtner 表示: “Java 的强大优势在于社区支持。在 JUG Oberpfalz,我们重启了 2025 年的 ‘(Re)Start with Java’ 对话,开发人员也一直对 Java 语言的变化印象深刻。现代 Java 比以前效率更高、更安全、更富创新力,这也是 Java 社区和协作所取得成果的证明。”
1631

被折叠的 条评论
为什么被折叠?



