Java 25
搜索文档
“我用 Java 8”已成过去式!Java 25正式发布:甲骨文提供八年更新、18项新功能上线
程序员的那些事· 2025-09-25 18:09
文章核心观点 - Oracle正式发布了最新的长期支持版本Java 25,这是继2023年9月的JDK 21之后的新LTS版本 [1] - JDK 25带来了18项功能更新,其中5项被Oracle宣称可助力AI开发 [4] - 尽管存在“你发任你发,我用Java 8”的调侃,但行业数据显示开发者更关注LTS版本,Java 17已成为使用率最高的版本,Java 21紧随其后 [15] Java 25版本支持周期 - JDK 25作为LTS版本将获得至少8年的Oracle Premier商业支持 [1] - 在2028年9月之前,JDK 25将按季度提供免费的安全和性能更新,遵循NFTC许可 [1] - 2028年9月之后,更新将转到OTN许可下继续提供,预计至少持续到2033年9月 [1] - OTN许可模式为“开发免费、商用需付费”,允许开发测试免费使用,但生产环境大规模商用需购买商业支持 [2] 语言层面改进 - 原始类型模式匹配进入第三次预览,拓展了instanceof和switch对原始类型的支持 [6] - 模块导入声明功能允许一次性导入整个模块输出的所有包,减少重复import声明 [6] - 简化源码文件与实例化main方法正式定型,方便初学者和有经验的开发者编写程序 [6] - 灵活构造函数体正式定型,允许在显式调用super或this之前编写安全语句 [6] 库与API更新 - 结构化并发进入第五次预览,StructuredTaskScope的创建方式改为静态工厂方法 [7] - 作用域值特性正式定型,允许在同一线程及其子线程间共享不可变数据 [8] - 稳定值作为预览特性提供更灵活处理不可变数据的方式,可启用类似final字段的性能优化 [8] - 向量API再次进入孵化阶段,进行了两项重要改进:数学函数实现迁移和Float16类型自动向量化 [9] 安全与加密增强 - 预览PEM加密对象编码API,方便在PEM格式与Java加密对象间转换 [10] - 正式提供密钥派生函数API,支持从已有秘密密钥和数据中派生新密钥 [10] 性能优化与垃圾回收 - 紧凑对象头正式登场,将对象头大小从96-128位压缩到64位,减小堆内存占用 [11] - 引入提前编译命令行改进和提前方法分析,改善应用启动体验 [11] - 分代Shenandoah垃圾回收器从实验功能升级为正式特性,提升可持续吞吐量和内存利用率 [13] - JDK 25正式移除对32位x86的支持,社区可集中精力推进新特性 [14] 性能分析工具增强 - JDK Flight Recorder引入CPU时间分析功能,利用Linux内核CPU计时器生成更精确分析报告 [12] - 推出协作采样功能,在安全点执行调用栈遍历,减少采样误差 [12] - 加入方法执行时序与追踪功能,无需字节码插桩即可记录方法执行时间和调用栈信息 [13] - 字符串性能提升,String::hashCode方法借助编译器常量折叠优化获得显著加速 [14]
“我用Java 8”已成过去式,Java 25正式发布:Oracle提供八年更新、18项新功能上线
36氪· 2025-09-17 20:10
Java 25版本发布与支持周期 - Oracle最新发布了Java 25,这是最新的长期支持版本,上一个LTS版本是2023年9月推出的JDK 21 [1] - JDK 25作为LTS版本将获得至少8年的Oracle Premier商业支持 [1] - 在2028年9月之前,JDK 25将按季度提供免费的安全和性能更新,遵循NFTC许可;之后更新将转到OTN许可下,预计至少持续到2033年9月 [1] - OTN许可模式允许开发者在开发和测试中免费使用Java SE,但在生产环境或大规模商用部署中长期使用则需要从Oracle购买商业支持 [2] 新功能与特性更新 - Java 25共计带来了18项功能更新,其中5项被Oracle宣称可以助力AI开发 [4] - 在语言层面,JDK 25带来了第三次预览的原始类型模式匹配,拓展了instanceof和switch对原始类型的支持 [5] - 模块导入声明功能允许开发者一次性导入整个模块输出的所有包,减少重复的import声明 [5] - 简化源码文件与实例化main方法将在JDK 25正式定型,方便初学者和有经验的开发者编写程序 [5] - 灵活构造函数体也将在JDK 25中定型,允许在显式调用super或this之前编写安全语句 [5] 并发、库与性能优化 - 结构化并发在JDK 25进入第五次预览,新版本中StructuredTaskScope的创建方式改为静态工厂方法 [6] - 作用域值在JDK 25中定型,允许方法在同一线程及其子线程之间共享不可变数据 [6] - 稳定值作为预览特性,提供了一种更灵活的方式来处理不可变数据,可改进应用启动性能并保证多线程下数据的安全初始化 [6] - 向量API再次进入孵化阶段,这是其在JDK中的第十次亮相,旨在利用CPU的向量指令提升计算效率 [7] - JDK 25正式提供了密钥派生函数API,支持通过算法从已有的秘密密钥和数据中派生新密钥 [8] 安全、内存与垃圾回收 - JDK 25预览了PEM加密对象编码的简洁API,方便在PEM格式与Java加密对象之间进行转换 [8] - 紧凑对象头功能正式登场,将HotSpot JVM中对象头的大小在64位架构上压缩到64位,从而减小堆内存占用 [9] - JDK 25引入了提前编译命令行改进和提前方法分析,旨在加快Java应用启动速度 [9] - 分代Shenandoah垃圾回收器从实验功能升级为正式特性,目标是提升Java程序的可持续吞吐量和内存利用率 [11] - JDK 25正式移除了对32位x86的支持,OpenJDK社区可以集中精力推进新特性和优化 [12] 性能分析与监控工具 - JDK 25对JDK Flight Recorder进行了重要增强,引入了CPU时间分析功能,能够更精确地生成Java程序的CPU时间分析报告 [10] - JFR还推出了协作采样功能,在异步采样Java线程栈时选择在安全点执行调用栈遍历,以减少采样误差 [10] - JDK 25为JFR加入了新的方法执行时序与追踪功能,开发者无需通过字节码插桩也能记录特定方法的执行时间和调用栈信息 [11] - 字符串性能得到提升,String::hashCode方法现在能借助编译器的常量折叠优化,让字符串作为不可变Map键时获得显著的性能加速 [12] 开发者采用与市场趋势 - 根据Azul组织发布的最新数据,开发者最关心的还是长期支持版,Java 17已成为使用率最高的版本,Java 21紧随其后 [13] - 尽管有“你发任你发,我用Java 8”的调侃,但LTS版本如Java 17和Java 21的采用率表明市场正在向新版本迁移 [13]
Oracle Releases Java 25
Prnewswire· 2025-09-16 22:30
核心观点 - Oracle发布Java 25版本 包含18项JDK增强提案 旨在提升AI能力、开发效率及平台性能 并提供至少8年长期支持 [1][2][10] 版本特性与功能增强 - 语言特性改进:JEP 507支持原始类型模式匹配 提升AI推理应用开发效率 [3];JEP 511模块导入声明简化第三方库使用 [3];JEP 512紧凑源文件与实例主方法降低初学者门槛 [3][13];JEP 513灵活构造函数提升代码安全性与可靠性 [4] - 并发与性能优化:JEP 505结构化并发提升多线程代码可维护性 [9];JEP 506作用域值实现线程间数据安全共享 [9];JEP 519紧凑对象头减少内存占用 [9];JEP 514/515提前编译优化加速应用启动 [9] - AI与安全能力:JEP 508向量API提升AI推理计算性能 [9];JEP 510密钥派生函数API支持后量子加密 [9];JEP 470加密对象PEM编码增强安全集成能力 [9] 生态系统与社区支持 - 全球开发者社区通过OpenJDK和JCP参与版本迭代 最新技术将在2026年JavaOne大会展示 [10][15] - 行业专家评价积极:IDC认为Java持续引领AI与安全创新 [2];Gradle等企业代表肯定6个月发布周期的高效性 [13];教育界人士认可新特性对初学者的友好性 [13][15] 云服务与商业支持 - Oracle Cloud Infrastructure为首个支持JDK 25的超大规模云平台 提供免费企业级性能包 [11] - Java SE通用订阅服务包含性能包、全Java组合支持及管理服务 助力企业控制成本与安全风险 [12] 性能监控工具升级 - JEP 509 JFR CPU时间分析提升Linux性能诊断精度 [14];JEP 518 JFR协同采样增强稳定性 [14];JEP 520 JFR方法计时与追踪优化代码调试 [14]