Java 22 发布,新特性一览 java17新特性
yuyutoo 2024-10-23 16:40 2 浏览 0 评论
Java 22 发布于 2024 年 3 月 19 号。目前已经可以下载到不同供应商的构建版本了。推荐使用 Eclipse Temurin 的版本。
这个最新的 Java 版本有哪些新东西呢?我们来看一下。
首先介绍 Java 22 全新的功能。
第一个是 Class File API。这是解析、生成和转换 Java 类文件的标准 API。目前在处理 Java 的字节码时,必须用到第三方库,比如 ASM、BECL 或 Javassist。这些第三方库最大的问题是更新不够及时,无法适应 Java 现在 6个月一个版本的发布频率。Class File API 的出现,解决了更新不及时的问题。作为 Java 标准库的一部分,使用起来更方便,也更安全。
第二个是在构造器的 super(...) 和 this(...) 之前添加语句。我们在学习 Java的 时候,都会记得有一条语法规则:如果构造器使用了 super(...) 调用父类的构造器,或是 this(...) 调用当前类的其他构造器,调用的语句必须是构造器的第一条,否则就会出现编译错误。这是从 Java 1.0 就有的限制。这种限制是为了确保父类的字段先完成初始化。这种简单粗暴的一刀切的做法,虽然保证了安全性,但是带来了很多使用上的不变。在 Java 22 中,这个限制被去掉了。构造器的 super(...) 和 this(...) 之前可以添加语句,编译器会执行严格的检查,确保添加了语句之后,并不会破坏安全性。
第三个是流收集器。Java 8 推出的 Stream 在代码中的使用频率非常高。流的处理 pipeline 由 3个部分组成,分别是源,中间操作和终结操作。源是流中元素的来源,中间操作对元素进行处理,终结操作产生最后的结果或者是副作用。
一直以来,流处理的中间操作是不能自定义的,只能用 Stream 类中定义的那些。流收集器 Gatherer 接口的出现,使得我们可以创建自定义的流中间处理操作。比如我写的这个 Gatherer 的实现 DistinctBy,可以根据对象的属性值来去重。
第四个是 java 命令直接运行包含多个源代码文件的程序。在 Java 11 的时候,java 命令就可以运行单个 Java 源文件了。Java 22 把这个功能进行了增强,Java 程序中包含多个源文件时,也可以直接用 java 命令运行,并不需要先使用 javac 编译。
第五个与垃圾回收器 G1 有关,在 G1 中实现了区域锁定来降低延迟,在进入 JNI 临界区时不需要禁用 GC。
除了这5个新增的功能之外,有两个功能成为了正式功能。
未命名变量和模式,可以用下划线来指代未使用的变量,未使用的模式变量,和未使用的嵌套模式。
外部方法和内存API,这个API 是JNI的替代,可以高效地调用 JVM 之外的外部方法,安全访问 JVM 之外的外部内存。
最后是几个继续预览的功能:
字符串模板,允许在文本中嵌入表达式。
隐式声明的类和实例 main 方法,这个功能简化了Java入口类的写法,最简单的 Hello World 程序可以这样写。
结构化并发和 Scoped Values 都是 Loom 项目的一部分,就是那个引入了虚拟线程的 Loom 项目, 这两个功能在 Java 22 中没有变化。
最后的最后,是从 Java 16 以来的钉子户,矢量 API,在 Java 22 中已经来到了第7个孵化版本
以上就是 Java 22 的全部新功能了。
相关推荐
- 史上最全的浏览器兼容性问题和解决方案
-
微信ID:WEB_wysj(点击关注)◎◎◎◎◎◎◎◎◎一┳═┻︻▄(页底留言开放,欢迎来吐槽)●●●...
-
- 平面设计基础知识_平面设计基础知识实验收获与总结
-
CSS构造颜色,背景与图像1.使用span更好的控制文本中局部区域的文本:文本;2.使用display属性提供区块转变:display:inline(是内联的...
-
2025-02-21 16:01 yuyutoo
- 写作排版简单三步就行-工具篇_作文排版模板
-
和我们工作中日常word排版内部交流不同,这篇教程介绍的写作排版主要是用于“微信公众号、头条号”网络展示。写作展现的是我的思考,排版是让写作在网格上更好地展现。在写作上花费时间是有累积复利优势的,在排...
- 写一个2048的游戏_2048小游戏功能实现
-
1.创建HTML文件1.打开一个文本编辑器,例如Notepad++、SublimeText、VisualStudioCode等。2.将以下HTML代码复制并粘贴到文本编辑器中:html...
- 今天你穿“短袖”了吗?青岛最高23℃!接下来几天气温更刺激……
-
最近的天气暖和得让很多小伙伴们喊“热”!!! 昨天的气温到底升得有多高呢?你家有没有榜上有名?...
- CSS不规则卡片,纯CSS制作优惠券样式,CSS实现锯齿样式
-
之前也有写过CSS优惠券样式《CSS3径向渐变实现优惠券波浪造型》,这次再来温习一遍,并且将更为详细的讲解,从布局到具体样式说明,最后定义CSS变量,自定义主题颜色。布局...
- 你的自我界限够强大吗?_你的自我界限够强大吗英文
-
我的结果:A、该设立新的界限...
- 行内元素与块级元素,以及区别_行内元素和块级元素有什么区别?
-
行内元素与块级元素首先,CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,分别为块级(block)、行内(inline)。块级元素:(以下列举比较常...
-
- 让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华
-
去年的两会期间,习近平总书记在参加人大会议四川代表团审议时,对治蜀兴川提出了明确要求,指明了前行方向,并带来了“祝四川人民的生活越来越安逸”的美好祝福。又是一年...
-
2025-02-21 16:00 yuyutoo
- 今年国家综合性消防救援队伍计划招录消防员15000名
-
记者24日从应急管理部获悉,国家综合性消防救援队伍2023年消防员招录工作已正式启动。今年共计划招录消防员15000名,其中高校应届毕业生5000名、退役士兵5000名、社会青年5000名。本次招录的...
- 一起盘点最新 Chrome v133 的5大主流特性 ?
-
1.CSS的高级attr()方法CSSattr()函数是CSSLevel5中用于检索DOM元素的属性值并将其用于CSS属性值,类似于var()函数替换自定义属性值的方式。...
- 竞走团体世锦赛5月太仓举行 世界冠军杨家玉担任形象大使
-
style="text-align:center;"data-mce-style="text-align:...
- 学物理能做什么?_学物理能做什么 卢昌海
-
作者:曹则贤中国科学院物理研究所原标题:《物理学:ASourceofPowerforMan》在2006年中央电视台《对话》栏目的某期节目中,主持人问过我一个的问题:“学物理的人,如果日后不...
-
- 你不知道的关于这只眯眼兔的6个小秘密
-
在你们忙着给熊本君做表情包的时候,要知道,最先在网络上引起轰动的可是这只脸上只有两条缝的兔子——兔斯基。今年,它更是迎来了自己的10岁生日。①关于德艺双馨“老艺...
-
2025-02-21 16:00 yuyutoo
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)