你好呀,我是歪歪。
刚刚在网上冲浪的时候,发现昨天晚上 JDK 22 版本“悄悄咪咪”的发布了 GA 版本。
https://openjdk.org/projects/jdk/22/
GA 版本,就是 “General Availability” 的缩写,如果对外发布一个 GA 版本,就意味着这个版本已经经过全面的测试,不存在任何重大的 bug,官方开始推荐广泛使用了。
在 JDK 22 版本里面一共发布了 12 个新特性:
这 12 个新特性,涉及到 Java 核心库、Java 语言规范、Java 开发工具、JVM 这四个大方向。
关于每个新特性的介绍和带来的价值,官方的这篇文章写的比较清楚了:
https://inside.java/2024/03/19/the-arrival-of-java-22/
可以仔细看看官方的这篇文章,虽然全是英文,不要害怕,摸鱼的时候可以结合翻译软件慢慢看嘛,毕竟这里属于是第一手资料了。
看到自己感兴趣的新特性,可以点击对应的详细描述进一步了解相关情况。最好是把 JDK 22 版本拉下来,把官方介绍里面的 Demo 拿下来跑跑。
歪师傅这里就不带着大家进行一一翻译,解读了(主要是有些新特性我也没看懂)。
只是浅浅的看一个点:
https://openjdk.org/jeps/460
你看一下它的简介,大概是在说提供了一套关于向量计算的 API,这些向量计算在运行时,如果对应的 CPU 架构支持优化,那么可以编译成最佳向量指令,从而达到更牛逼的计算性能。
为啥我要把这个玩意单独拿出来说呢?
还记得我之前文章中提到过的“十亿行挑战”吗?
https://github.com/gunnarmorling/1brc
其中在优化手段建议部分,就提到了“Vector API”。
我也是在这里第一次接触到这个玩意,然后临时抱佛脚的了解了一下。在大量数据的计算场景下,你只要用这个语法编写代码,那么这个玩意会给你提供 CPU 指令级别的优化:
虽然我看不懂,但是这并不妨碍我大受震撼。
而且我也知道,在我的实际工作中,绝对是用不到这个新特性的,但是我通过另外一个方式了解过,和别人吹牛的时候也能聊上几句。
另外,我还想“挖个坟”。
在 JDK 21 发布的时候,我也写过这样一篇文章:《朋友们,就在今天,JDK 21,它终于带着重磅新特性正式发布了!》
在文章中,我提到:根据官方的消息,最开始 JDK 21 的版本中是包含了 Shenandoah 的。但是 JDK 12 的 GA 版本中并没有看到它的影子。
当时官方的说法是:因为 Shenandoah 在审查的过程中发现了明确的风险,并且没有足够的时间来进行针对大量代码改动所需的评审。
翻译过来就是:别问,问就是时间紧,任务重,申请延期。
然后画了一个新饼:
现在 JDK 22 也 GA 了...
没有任何 Shenandoah 的消息。
果然,印证了那句老话呀:不要轻易画饼啊。
哦,对了,还有一件事:
昨天除了发布 JDK 22 外,JavaOne 大会也官宣要回归了,只不过是 2025 年:
可以期待一波。