文章摘要
JDK 25作为Java 25的参考实现现已正式发布,其构建版本36已通过测试并准备投入生产使用。该版本包含18个JEP(Java增强提案),如PEM编码加密对象预览、稳定值预览等。Oracle提供的GPL许可的OpenJDK构建版本已可获取,其他供应商的版本也将很快推出。
文章总结
Java 25 / JDK 25 正式发布
2025年9月16日,Mark Reinhold 在 OpenJDK 的公告邮件列表中宣布,JDK 25 作为 Java 25 的参考实现,现已正式发布。该版本的第36个构建已于8月15日作为第二个发布候选版本发布,自那时起未收到任何P1级别的错误报告,因此该构建现已成为正式发布版本,可供生产环境使用。
Oracle 提供的 GPL 许可的 OpenJDK 构建版本可通过以下链接获取:https://jdk.java.net/25。其他供应商的构建版本预计也将很快推出。
JDK 25 包含了18个 Java 增强提案(JEP),其中包括: - 470: 加密对象的 PEM 编码(预览) - 502: 稳定值(预览) - 503: 移除32位x86端口 - 505: 结构化并发(第五次预览) - 506: 作用域值 - 507: 模式、instanceof 和 switch 中的原始类型(第三次预览) - 508: 向量API(第十次孵化) - 509: JFR CPU时间分析(实验性) - 510: 密钥派生函数API - 511: 模块导入声明 - 512: 紧凑源文件和实例主方法 - 513: 灵活的构造函数体 - 514: 提前编译命令行优化 - 515: 提前编译方法分析 - 518: JFR 协作采样 - 519: 紧凑对象头 - 520: JFR 方法计时与追踪 - 521: 分代式 Shenandoah
此外,该版本还包含了数百项较小的改进和数千个错误修复。
Mark Reinhold 对所有为此次发布做出贡献的人员表示感谢,无论是通过设计和实现新功能或改进,还是通过修复错误或测试早期访问构建。
评论总结
Java 25的新特性与LTS发布
- 评论1提到Java 25是LTS版本,并提供了新特性的链接。
- 评论3推荐了关于Java 25新特性的详细概述。
- 引用:
- "Java 25 is an LTS release."
- "Nice overview of new features in Java 25."
对结构化并发和Scoped Values的期待
- 评论2表达了对结构化并发未完全发布的失望,但对Scoped Values的引入表示欢迎,认为它将有助于编写更清晰的代码。
- 引用:
- "Damn, still not structured concurrency full release."
- "Happy to see Scoped Values here though."
Java的稳定性和长期支持
- 评论4赞扬Java作为技术基础的稳定性,提到从Java 1.4到Java 21的平滑升级,并计划升级到Java 25。
- 引用:
- "Java has been such an amazingly solid technological foundation."
- "We have applications created with Java 1.4 running happily on Java 21 LTS."
Java的法律和商业使用问题
- 评论5询问了Java在开源和商业环境中的法律现状,特别是Oracle对Java技术的控制。
- 引用:
- "What is the current situation of using Java (from legal standpoint)?"
- "Oracle has a lot of fantastic technology locked up in Java."
对构造函数参数验证的改进
- 评论6对Java 25中允许在调用super之前进行参数验证和转换表示赞赏,认为这是必要的改进。
- 引用:
- "Crazy that it took this long to allow parameter validation and transformation before calling super in the constructor."
- "That was something that always bothered me."
从JDK 8到JDK 21的迁移经验
- 评论7分享了从JDK 8迁移到JDK 21的经验,提到从JDK 8到11的挑战,但之后的升级相对顺利。
- 引用:
- "the biggest hurdle is 8 to 11 (with the new modules system)."
- "it's smooth sailing from there."
对模块导入系统的批评
- 评论8批评了Java的模块导入系统,认为类似
import *的语法使代码难以阅读,特别是对新开发者。 - 引用:
- "I think
import *-like constructions make code a bit easier to write, but much harder to read." - "Personally, I much prefer Python's 'short aliases' style."
- "I think
- 评论8批评了Java的模块导入系统,认为类似
Java/JVM的稳定性和成熟性
- 评论9认为Java/JVM生态系统非常稳定和成熟,建议更多新项目使用Java/JVM。
- 引用:
- "Most of the reasons Java dropped out of popularity no longer apply."
- "I can come back to a Clojure program I wrote ten years ago and it runs great."