AIGC开放社区
发布于

Java 30周年献礼:新LTS版本Java 25,服务器内存砍掉22%,AI开发起飞

专注AIGC领域的专业社区,关注微软&OpenAI、百度文心一言、讯飞星火等大语言模型(LLM)的发展和应用落地,聚焦LLM的市场研究和AIGC开发者生态,欢迎关注!
‍‍

2025年9月16日,Oracle(甲骨文)公司正式把Java 25端上了台面。

这不是一次普通的更新。

这是继JDK 21之后的第一个LTS(长期支持)版本,意味着Oracle官方会为它提供至少八年的技术支持,一直到2033年。对于求稳定、怕折腾的企业级用户来说,这简直就是定心丸。

这次更新打包了18个JDK增强提案(JEP),个个都是硬菜。核心目标就几个:让AI跑得更爽、让安全防护更铁、让开发者写代码更顺手、让平台性能,尤其是在云上跑的时候,更快更省。

先给服务器省点钱

这次更新里,最炸裂的性能改进可能就是JEP 519(紧凑对象头)了。

听起来很技术,但效果非常直接:省钱。

在Java里,每个对象都有个“头”,用来存放自己的元数据,像哈希码、锁信息之类的。过去在64位系统上,这个头要占96到128位。Java 25直接把它压缩到了64位。

这一下,效果立竿见影。

根据实测数据,光是这一项改动,就能让应用程序的堆内存占用减少高达22%,CPU时间降低8%,对于那些需要处理海量对象的应用,吞吐量能提升5%到10%。

这些省下来的内存,在云时代就是实打实的钞票。更少的内存占用意味着可以用更小规格的云主机,或者在同样规格的主机上塞进更多的容器实例,直接降低了每个月的云账单。

除了省内存,启动速度也卷起来了。云原生和微服务架构下,应用冷启动速度是个老大难问题。服务重启或者弹性扩容时,谁都希望它能瞬间进入战斗状态。

Java 25用两项JEP来解决这个问题。

一个是JEP 514(预编译命令行人体工学),它简化了AOT(预编译)缓存的创建过程。以前配置AOT很麻烦,现在通过优化几个命令行参数,开发者能轻松生成缓存,让应用启动快人一步。

另一个是JEP 515(预编译方法分析),这个更狠。传统的JIT(即时编译)模式,应用启动后需要跑一会儿,收集哪些代码是热点,然后再编译优化,这个过程叫“预热”。Java 25允许你把上次运行时的热点代码分析结果存下来,下次启动时,JVM(Java虚拟机)直接加载这个“作业”,跳过预热,直接进行高效的JIT编译。

效果有多好?应用程序在 “预热模式” (warm-up mode)花费的时间,在理想情况下,可将启动性能提升 30% 至 70%。

原来一个微服务重启后,可能要晃晃悠悠几分钟才能达到性能巅峰,现在可能一启动就能扛住高并发流量。

最后,JEP 521(分代Shenandoah)将分代Shenandoah垃圾回收器设为了默认选项。Shenandoah这个垃圾回收器以暂停时间极短而闻名,现在加上了分代回收技术,效率更上一层楼,特别适合那些需要大内存、低延迟的怪物级应用,比如实时金融交易系统。

让代码写起来,没那么“啰嗦”了

Java语法有时候确实有点啰嗦,像个爱说教的长辈。Java 25在这方面做了不少努力,让代码写起来更现代、更简单。

JEP 512(紧凑源文件和实例主方法)就是专门为新手和写小工具的管理员准备的。

以前学Java,第一行代码就得写那个又长又臭的public static void main方法,还得先理解什么是类、什么是静态方法。现在不用了,Java 25允许使用更简洁的实例主方法和紧凑源文件,写个小脚本、小工具,就像写Python一样简单直接,大大降低了入门门槛。

JEP 511(模块导入声明)解决了另一个烦心事。当使用一个大型第三方库,比如AI推理库时,你可能需要从十几个不同的包里导入类,写一长串的import语句。现在,你可以直接import module a.b.c;,一次性把这个模块导出的所有包都导入进来,代码瞬间清爽多了。

JEP 513(灵活的构造器体)则提升了代码的健壮性。按照老规矩,在构造函数里,第一行要么调用this(),要么调用super(),之后才能写自己的逻辑。但很多时候,你需要先对传入的参数做个校验。Java 25放宽了这个限制,允许在调用super()this()之前执行一些语句,比如参数验证。这样一来,你就能确保在父类构造器访问到子类字段之前,这些字段已经被安全地初始化了,对于金融、安全这类要求严苛的应用场景,这个小改动意义重大。

还有JEP 507(原始类型在模式匹配、instanceof和switch中的应用),它让switch语句和instanceof检查能直接支持intfloat这些原始数据类型。在AI计算中,模型处理的很多都是这类原始数据,以前要做各种类型转换,现在可以直接匹配,代码逻辑清晰多了。

AI和并发,稳字当头

AI应用和现代微服务都离不开高并发处理。传统的多线程编程,自己管线程、处理错误、释放资源,一不小心就线程泄漏、服务雪崩。

Java 25引入了JEP 505(结构化并发),它把一组相关的并发任务看成一个独立的工作单元。想象一下,一个AI应用需要同时调用三个模型进行推理。使用结构化并发,这三个任务就在一个“结构”里。任何一个任务失败了,整个工作单元可以被立刻、干净地取消,所有相关的线程都会被终结,不会留下任何烂摊子。这让并发代码的错误处理和资源管理变得异常简单和可靠。

与此配合的是JEP 506(作用域值)。它提供了一种在线程内外高效共享不可变数据的方式。相比老旧的Thread-local变量,它更好理解,性能开销也更低。在Web框架或者AI推理服务里,用户的身份信息、请求上下文这些数据,可以通过作用域值在成千上万的虚拟线程间传递,既安全又高效。

JEP 508(向量API)是Java 25在AI计算领域最硬核的武器。它把向量计算的能力带给了Java。CPU其实早就支持各种向量指令集(比如AVX、NEON),一次能处理多个数据,比一个个标量计算快得多。向量API能让JVM在运行时,把Java代码编译成最高效的CPU向量指令。对于AI推理、机器学习这类计算密集型任务,性能提升是数量级的。虽然它还在孵化阶段,但已经展示出了巨大的潜力。

安全和监控,一个都不能少

安全方面,Java 25也补上了两块重要拼图。

JEP 510(密钥派生函数API)为现代密码学提供了基础组件。随着量子计算的发展,传统的公钥加密体系正面临威胁。密钥派生函数(KDF)是构建量子安全加密算法的关键,这个API的引入,等于为Java应用通向量子安全的未来铺好了路。

JEP 470(密码学对象的PEM编码)则解决了一个工程上的痛点。PEM是一种广泛使用的安全数据交换格式,像证书、密钥都用它。以前Java处理这个格式很费劲,现在有了官方API,可以轻松地对这些密码学对象进行编码和解码,与企业现有的安全系统、硬件安全设备(比如Yubikeys)无缝对接。

在监控和诊断方面,JDK飞行记录器(JFR)被进一步打磨成了一把“手术刀”。

JEP 509(JFR CPU时间分析)让JFR能深入到方法级别,告诉你每个线程、每段代码路径到底花了多少CPU时间。性能瓶颈在哪里,一目了然,再也不用靠猜了。

JEP 518(JFR协作式采样)和JEP 520(JFR方法计时与追踪)则让性能监控更精准、开销更低。开发者甚至可以指定追踪某个特定方法,看看它每次执行花了多长时间,调用了哪些其他方法,这对于排查版本升级后出现的性能衰退问题,简直是神器。

IDC(国际数据公司)的研究副总裁阿纳尔·达亚拉特纳评价说,Java正通过持续的创新,确保其在AI驱动应用时代的核心地位。

Java 25,作为将在未来许多年里支撑企业应用的核心基石,已经用这18个实实在在的增强,证明了这门30岁的语言,依旧充满活力。

那么,你的项目准备好升级了吗?

参考文献:

https://www.oracle.com/news/announcement/oracle-releases-java-25-2025-09-16

https://www.infoworld.com/article/4057212/the-three-game-changing-features-of-jdk-25.html

https://www.infoq.com/news/2025/09/java25-released

https://www.oracle.com/java/technologies/javase/25all-relnotes.html

浏览 (28)
点赞
收藏
1条评论
探小金-AI探金官方🆔
探小金:嘿~小伙伴们,你们听说了吗?Java迎来了三十岁的生日,还带上了超级豪华的生日礼物—Java 25!这不仅是个LTS版本,还像给服务器来了一次瘦身手术,内存足足砍掉了22%!想象一下,那对AI开发者来说,就像是得到了一把更快、更省心的瑞士军刀呢!启动速度也像火箭一样飙升,微服务重启都能秒速变身!代码写作也变得更简洁,就像有了魔法一样。而且,安全和监控也跟着升级,让企业的心头好更加稳固。现在,是不是已经开始计划你的应用换新衣呢?快去拥抱这股技术革新潮流吧!#Java30周年# #Java25新体验#
点赞
评论