Java 22 发布,新特性一览 java17新特性
yuyutoo 2024-10-23 16:40 1 浏览 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 的全部新功能了。
相关推荐
- jQuery VS AngularJS 你更钟爱哪个?
-
在这一次的Web开发教程中,我会尽力解答有关于jQuery和AngularJS的两个非常常见的问题,即jQuery和AngularJS之间的区别是什么?也就是说jQueryVSAngularJS?...
- Jquery实时校验,指定长度的「负小数」,小数位未满末尾补0
-
在可以输入【负小数】的输入框获取到焦点时,移除千位分隔符,在输入数据时,实时校验输入内容是否正确,失去焦点后,添加千位分隔符格式化数字。同时小数位未满时末尾补0。HTML代码...
- 如何在pbootCMS前台调用自定义表单?pbootCMS自定义调用代码示例
-
要在pbootCMS前台调用自定义表单,您需要在后台创建表单并为其添加字段,然后在前台模板文件中添加相关代码,如提交按钮和表单验证代码。您还可以自定义表单数据的存储位置、添加文件上传字段、日期选择器、...
- 编程技巧:Jquery实时验证,指定长度的「负小数」
-
为了保障【负小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【负小数】的方法。HTML代码<inputtype="text"class="forc...
- 一篇文章带你用jquery mobile设计颜色拾取器
-
【一、项目背景】现实生活中,我们经常会遇到配色的问题,这个时候去百度一下RGB表。而RGB表只提供相对于的颜色的RGB值而没有可以验证的模块。我们可以通过jquerymobile去设计颜色的拾取器...
- 编程技巧:Jquery实时验证,指定长度的「正小数」
-
为了保障【正小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【正小数】的方法。HTML做成方法<inputtype="text"class="fo...
- jquery.validate检查数组全部验证
-
问题:html中有多个name[],每个参数都要进行验证是否为空,这个时候直接用required:true话,不能全部验证,只要这个数组中有一个有值就可以通过的。解决方法使用addmethod...
- Vue进阶(幺叁肆):npm查看包版本信息
-
第一种方式npmviewjqueryversions这种方式可以查看npm服务器上所有的...
- layui中使用lay-verify进行条件校验
-
一、layui的校验很简单,主要有以下步骤:1.在form表单内加上class="layui-form"2.在提交按钮上加上lay-submit3.在想要校验的标签,加上lay-...
- jQuery是什么?如何使用? jquery是什么功能组件
-
jQuery于2006年1月由JohnResig在BarCampNYC首次发布。它目前由TimmyWilson领导,并由一组开发人员维护。jQuery是一个JavaScript库,它简化了客户...
- django框架的表单form的理解和用法-9
-
表单呈现...
- jquery对上传文件的检测判断 jquery实现文件上传
-
总体思路:在前端使用jquery对上传文件做部分初步的判断,验证通过的文件利用ajaxFileUpload上传到服务器端,并将文件的存储路径保存到数据库。<asp:FileUploadI...
- Nodejs之MEAN栈开发(四)-- form验证及图片上传
-
这一节增加推荐图书的提交和删除功能,来学习node的form提交以及node的图片上传功能。开始之前需要源码同学可以先在git上fork:https://github.com/stoneniqiu/R...
- 大数据开发基础之JAVA jquery 大数据java实战
-
上一篇我们讲解了JAVAscript的基础知识、特点及基本语法以及组成及基本用途,本期就给大家带来了JAVAweb的第二个知识点jquery,大数据开发基础之JAVAjquery,这是本篇文章的主要...
- 推荐四个开源的jQuery可视化表单设计器
-
jquery开源在线表单拖拉设计器formBuilder(推荐)jQueryformBuilder是一个开源的WEB在线html表单设计器,开发人员可以通过拖拉实现一个可视化的表单。支持表单常用控件...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 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)