Workflow
“我用 Java 8”已成过去式!Java 25正式发布:甲骨文提供八年更新、18项新功能上线

文章核心观点 - 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]