JDK17于2021年9月发行。JDK17是最新的LTS版本。SO -Called LTS版本是一个版本,至少可以在八年内支持。从2014年开始,2014年的JDK11,2018年的JDK11和2021年的JDK17。
同时,Oracle还调整了LTS版本的发布期。从过去的三年到目前的两年,也就是说,下一个LTS版本将是JDK21,哇!
因此,如果不是LTS版本?非-LTS版本只能获得六个月的产品支持。因此,每个人都使用LTS版本。
好吧,让我们看一下JDK17中的那些新功能。
通常,JDK17提供14个优化点或更改。我们将一一解释它们。
JDK17只有一个JEP 409:密封班。
密封类是JDK15中引入的概念,该概念指示哪个类允许它们继承它:
最终表明SEAL2不能再继承。Non密封意味着允许任何类型的继承。
JDK17具有4个优化Java Core库。
这是什么?简而言之,当严格计算浮动点语义时,是先前的硬件体系结构消耗了很多资源。当硬件水平不高时,很难在这么长时间前容忍。
因此,在JDK1.2之后,修改了浮动 - 点语义良好的语义和默认严格的浮动 - 点语义语义。
但是现在是2021年,硬件级别发展迅速,因此不必要的修改是不必要的,并且在JDK17中被放弃。
JDK中有一个随机数Java.util.random,但是此类生成伪兰多姆编号。
JDK17加强了这一类,并提供了一个随机机接口,为所有伪随机数提供了统一的API。
Randomgenter提供了诸如INT,Longs,Doubles,NextBoolean,NextInt,NextLong,NextDouble和NextFloat之类的方法来生成相应的随机数。
Randomgenrator接口包含4个子接口,即:
splittablerandomgenrator:提供拆分和拆分方法,允许用户从现有的RandomGenerator生成新的RandomGenrator。
JumpAblerandoMgenrator:扩展了随机机器人的跳跃和跳跃,使用户可以跳过一定数量的随机数。
LeapablerAndomgenrator:扩展了Randomgenrator的LEAP和飞跃方法,使用户可以跳过大量的随机数。
武装jumpablerandgenerator:展开LeapablerandGenerator,允许用户指定跳过的随机数。
同时,重组随机,线链球和分布。
这是对Mac的优化,使用最新的Apple Metal API实现Java的2D渲染。
JDK中的一种非常危险的用法要加深,因为您不知道该设备的对象是否是危险的对象。为了解决此问题,Java 9中引入了DEE序列化过滤器,从而在DeeperTdown SequencereRepeate中以之前的数据流进行了介绍。
但是,基于该流的过滤器有几个限制。该方法无法扩展,并且在代码版本发布后很难更新过滤器。它还无法过滤应用程序中第三党库执行的以设备为导向的操作。
为了解决这些问题,JEP 290还引入了可以通过API,系统属性或安全属性设置的旋转过滤器的JVM范围。上下文可能需要不同的过滤条件。
JDK17改进了JDK9的过滤方法,并且可以配置针对JVM范围中上下文的导数过滤器。
Mac的M1芯片已经发布了很长时间。JDK没有理由支持它。这种JEP是让JDK17支持本地苹果的新ARM 64架构。
此新功能允许在开关中匹配模式。
我们知道,在上一个预览函数中,已经有一个模式匹配,但是在语句的实例中使用了模式匹配,如下所示:
但是,如果实例太多,也会引起麻烦:
最好的方法是将上述代码转换为切换:
这是开关中的模式匹配。
在JDK14和15中,JDK已经可以调用不属于JVM的代码,并且不在JVM管辖范围内的内存空间中,此新功能在JDK17中得到了增强。
想象一下,将来,JDK本地支持称非java语言API,不是很棒吗?
在JDK16中引入了矢量。可以更快地进行矢量计算。可以通过向量简化环状遍历的计算。
其他更改,例如用于封装内部JDK的API,放弃了安全管理器Applet API,RMI等。它不会在这里介绍。
JDK17是LTS版本,还提供了许多出色的新功能。不要快速使用它!
最受欢迎的解释,最深的干货,最简单的教程,您不知道的许多技巧正在等待您发现!
欢迎注意我的公共帐户:“程序的事情”,了解技术并更好地了解您!