不管你是不是还用 Java 8,JDK23都如约而至了

乐活   2024-09-18 15:29   北京  


我的个人博客:www.moonkite.cn

大家好,我是风筝。

不管你是不是还用 Java 8,JDK23都如约而至了,就在昨天(2024年9月17日),JDK 23 正式发布了。

JDK23不是 LTS版本(长期支持版),下一个LTS版本是 JDK 25,预计2025年9月发布。

目前 JDK LTS 版本有 JDK1.8、JDK11、JDK17、JDK21。

据调查显示,2024年JDK各版本市场占有率最高的是 JDK17,占35.4%。这当然是国外的数据了,如果统计国内的话, 估计 JDK1.8 还是绝对主导的。

JDK 23 新特性

455:模式、instanceof 和 switch 中的基本类型(预览) 466:类文件 API(第二次预览) 467:Markdown 文档注释 469:向量 API(第八次孵化器) 473:流收集器(第二次预览) 471:弃用 sun.misc.Unsafe 中用于删除的内存访问方法 474:ZGC:默认的分代模式 476:模块导入声明(预览) 477:隐式声明的类和实例主方法(第三次预览) 480:结构化并发(第三次预览) 481:作用域值(第三次预览) 482:灵活的构造函数体(第二次预览)

前面几个是 JDK 23 的新特性,基本上都是预览版,有的是第二次预览、还有第三次预览的。预览就是还不能用在生产环境的,像结构化并发已经第三次预览了,没想到还没有成为正式功能,那可能就要等到 JDK25了。

正式的功能

Markdown 文档注释,就是在代码注释中支持 Markdown 格式,用处不大。

弃用 sun.misc.Unsafe 中用于删除的内存访问方法,前面的版本中也有对 Unsafe 的修订,相当于是在处理历史遗留问题,填坑的功能。

ZGC:默认采用分代模式,ZGC 从 JDK15开始成为正式功能,并在 JDK17和 JDK21中被广泛应用,但是一直都是默认的非分代模式。我们学过Java 垃圾收集的肯定都知道老年代和年轻代,但是JDK23之前的 ZGC 是不分区的,这样一来呢,在性能上就有所下降。优化垃圾收集器的性能一直是 Java 的重要工作,所以这不,为了提高性能,JDK23把分代 ZGC 作为默认配置了。

升不升级

升不升级永远是一个软件或者一个开源项目永恒的主题,在 Java 中更是有 “你发任你发,我用 java8”的老梗。

升不升级很多情况下不是我们一拍脑袋就能决定的。

公司项目, 稳定性永远排在第一位,很少有技术负责人愿意盯着这个风险进行升级,因为结果往往是费力不讨好的。

个人项目呢,升级也没那么简单,如果一个项目已经跑得好好的,为什么要升级它呢。另外,升级一个项目也要看整个生态,Java 的生态中有一大部分被掌握在 Spring 、Spring Boot 的手里,所以,很多时候能不能升级,要看 Spring等周边配套支不支持我们升级。

还可以看看风筝往期文章

「差生文具多系列」Jetbrains IDEs中也能养宠物了,而且还有拳皇人物

「差生文具多系列」最好看的编程字体

我患上了空指针后遗症

一千个微服务之死

搭建静态网站竟然有这么多方案,而且还如此简单

被人说 Lambda 代码像屎山,那是没用下面这三个方法

古时的风筝,一个程序员,一个写作者。

古时的风筝
努力成为独立开发者的程序员,分享我了解的关于编程、独立开发等知识,知不不言,言无不尽
 最新文章