Java14的特性 有什么特别之处?

Java 14终于在2020年3月发布,并带来了许多新功能,这些新功能将有助于减轻编码方面的麻烦。

在本文中,我们将分解6个最重要的功能,这些功能使Java 14与以前的版本相比是出色的更新。开始了:

1.switch表达式

尽管Switch Expressions只是前两个版本的预览功能,但现在在版本14中已赋予其永久状态。

在Java 12中为开关表达式引入了lambda语法,这意味着可以生成用于模式匹配的多个大小写标签。这也阻止了任何导致冗长代码的失败,并强制执行了详尽的案例,如果未输入所有输入案例,这些案例将发出编译错误。

在以前的版本中,引入yield语句来替换从表达式返回值的中断。在Java 14中,所有这些功能现在都已作为标准功能包括在内。我们还应该指出,yield不是Java的新关键字,仅在switch表达式中使用。

2.预览文本块

另一个以前的预览项目,文本块首先添加到Java 13中,目的是使多行字符串文字更容易创建。结果,HTML,JSON和SWL查询字符串变得特别容易。

NextCoursework和Australia2Write的记者Robert Class说:“文本块在Java 14中仍然是一个预览,但是它们还有一些有趣的新功能。” “特别是,您现在可以使用反斜杠来显示智能多行字符串块。”

该代码\s可以构建尾随空格,默认情况下编译器会忽略这些尾随空格。然后,这将保留之前包含的所有空间。

3. instanceof的模式匹配

Java开发人员创建的大多数代码库都将大量使用instanceof在整个代码中过滤的条件。一般来说,instanceof条件检查通常在显式类型转换之前进行。

在Java 14中,开发人员将很高兴知道已将其删除以使条件提取更加清晰。当前,此变量的范围仅限于条件块。

4.有用的NullPointerExceptions

大多数开发人员都会告诉您,空指针异常是Java早期版本中的一个噩梦。臭名昭著的NPE可能非常难以调试。

这总是导致开发人员重新使用其他调试工具,或者尝试手动计算为空的变量/方法,因为堆栈跟踪仅显示行号。

“在Java 14中,我们还看到了一个全新的JVM功能的引入,该功能通过描述性堆栈增强了洞察力,” Britstudent and Write My X的技术作家Anita Lockfield建议。“这不是语言功能,但是运行时环境的开发。”

5.预览记录

在Java中,您可以构建类来保存数据,并利用封装来控制访问和修改数据的方式。它是一种面向对象的语言。

因为它使用对象,所以使操作复杂的数据类型变得简单而直接。这是使Java流行为平台的原因之一。问题在于,在旧版本中,数据类型的创建非常冗长,即使是最简单的情况,也需要大量代码。

在Java 14中,他们引入了记录作为一种全新的预览功能。这个新概念有助于开发人员包括新的语言功能,而不必使其成为Java标准的一部分。这意味着开发人员可以测试功能并提供反馈,以在这些功能成为标准之前进行更改。

如果要使用预览功能,则需要--enable-preview为编译和运行时指定命令行标志。要进行编译,还必须指定sourceflag。记录成为显示数据类的简单得多的方式。

6.新的API

我们喜欢Java 14中的三个新API。第一个是java.io,其中包含一个称为序列号的新注释类型。旨在与序列化的编译器检查一起使用。这意味着可以将这种类型的注释应用于与序列化相关的方法,并可以将任何类中的字段声明为可序列化的。

我们喜欢的第二个API是java.lang。此类为新的Record功能提供了两种不同的方法,包括isRecord()和getRecordComponents()。这些RecordComponent对象具有一系列对象,并且最多提供11种检索内容的方法,例如注释的详细信息和通用类型。

最后,新的java.util.concurrent.locksAPI有一个称为的新方法setCurrentBlocker。这提供了取消驻留和驻留线程的功能。这有助于避免与先前版本的Thread.suspend和Thread.resume方法相同的问题。您还可以使用此新API设置getBlocker将返回的Object,这在从非公共对象调用无参数停放方法时会有所帮助。