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]
“我用Java 8”已成过去式,Java 25正式发布:Oracle提供八年更新、18项新功能上线