Java 14新特性和语法糖大揭秘!

Java 14现在可用!2020年3月17日,Java 14(Java SE 14)及其Java开发工具包14(JDK 14)开源发布,这是世界上最常见的编码语言和应用程序平台。Oracle现在提供Java 14,供所有开发人员和企业下载。

在版本14中发布了大量的Java增强建议(JEP)。(甚至比Java 12和13结合起来的JEP还要多)JAVA 14总共解决了16种主要的增强/更改(JEP),从Java语言支持到Java扩展。最新的API,用于持续的JDK飞行记录器监视。Java 14的新增特性有:JEP 305:instanceof模式匹配(Pattern Matching for instanceof,预览版) ,该预览特性可通过instanceof运算符模式匹配来增强Java。使用该特性,开发人员可以移除掉常见的样板代码,写出更加简洁的类型安全代码,从而提高工作效率。JEP343:打包工具(Packaging Tool,孵化阶段), 支持开发人员打包Java应用并以平台特定格式进行分发。这有助于开发人员开发那些要求运行时和应用捆绑在单一交付成果中的现代应用。Java 14在孵化器模块中引入了此工具,将非最终版API和非最终版工具提供给开发人员以获取反馈,这些API或工具在未来版本中可能会被保留或移除。JEP 345:适用于G1的NUMA感知内存分配 (NUMA-Aware Memory Allocation for G1), 改进非一致性内存访问(NUMA)系统上的G1垃圾收集器的整体性能。JEP 349:JFR事件流(JFR Event Streaming),公开JDK Flight Recorder (JFR)数据以便持续监控。这有助于简化各种工具和应用对JFR数据的访问,并激励进一步创新。JEP 352:非易失性映射字节缓冲区(Non-Volatile Mapped Byte Buffers) ,在使用非易失性内存时,为JDK添加一种文件映射模式,扩展对非易失性内存的访问。JEP358:NullPointerExceptions变得更加有用 ,准确描述哪个变量为null并提供其他有用信息,从而提高NullPointerExceptions的可用性。这将提高开发人员的工作效率,改进许多开发和调试工具的质量。JEP 359:记录类(Records,预览版), 该预览特性通过一种紧凑的语法来声明保存浅层不可变数据的类。此特性有助于大幅减少该类中的样板代码,不过其最大的优势在于可以将数据建模为数据。用户可以轻松、清楚、简洁地声明这些浅层不可变数据聚合。JEP 361:Switch表达式(Switch Expressions,标准版), 在JDK 12和JDK 13中,Switch表达式为预览特性,现已成为标准特性。它允许使用switch作为语句或表达式。此特性简化了日常编码,并为此版本中的模式匹配(JEP 305)预览特性做好了准备。JEP 364:macOS上的ZGC以及JEP 365:Windows上的ZGC ,尽管大多数需要ZGC的用户也需要Linux环境的可扩展性,但通常需要通过部署和测试以便在macOS和Windows上支持ZGC。还有一些针对Windows和macOS的桌面应用也将受益于ZGC。JEP 368:文本块(Text Blocks,第二次预览版),文本块作为预览特性首次引入Java 13后收到了众多最终用户的反馈。现在,文本块得到了增强,再次作为预览特性出现在Java 14中,目标成为未来JDK版本的标准特性。使用文本块可以轻松表达跨多行源代码的字符串。它提高了Java程序中以非Java语言编写的代码的字符串的可读性;它约定,任何新构造的文本块都可以用字符串相同的字符集表示,解释相同的转义序列并以与字符串相同的方式进行操作。JEP370:外部内存访问API(Foreign-Memory Access API,孵化阶段),此API可允许Java程序安全、高效地访问Java堆之外的外部内存。


猜你喜欢

转载自blog.51cto.com/15069477/2612501