此外,最新版Java还增加了对switch表达式的Java语言支持,公开了用于持续监视DKFlightRecorder数据的全新API,将低延迟Z垃圾收集器的可用性扩展至macOS和Windows,并在孵化器模块中封装了独立Java应用和新的外部内存访问API,以此支持安全、高效地访问Java堆外部的内存。
Java14发行版是整个行业通力合作的成果,这里面包括了开放评审、每周构建和一直以来甲骨文工程师通过OpenJDK社区和JavaCommunityProcess与全球Java开发人员社区成员间的广泛合作。Java14的新增特性有:
JEP305:instanceof模式匹配(PatternMatchingforinstanceof,预览版)—该预览特性可通过instanceof运算符模式匹配来增强Java。使用该特性,开发人员可以移除掉常见的样板代码,写出更加简洁的类型安全代码,从而提高工作效率。
JEP343:打包工具(PackagingTool,孵化阶段)—支持开发人员打包Java应用并以平台特定格式进行分发。这有助于开发人员开发那些要求运行时和应用捆绑在单一交付成果中的现代应用。Java14在孵化器模块中引入了此工具,将非最终版API和非最终版工具提供给开发人员以获取反馈,这些API或工具在未来版本中可能会被保留或移除。
JEP345:适用于G1的NUMA感知内存分配(NUMA-AwareMemoryAllocationforG1)—改进非一致性内存访问(NUMA)系统上的G1垃圾收集器的整体性能。
JEP349:JFR事件流(JFREventStreaming)—公开JDKFlightRecorder(JFR)数据以便持续监控。这有助于简化各种工具和应用对JFR数据的访问,并激励进一步创新。
JEP352:非易失性映射字节缓冲区(Non-VolatileMappedByteBuffers)—在使用非易失性内存时,为JDK添加一种文件映射模式,扩展对非易失性内存的访问。
JEP358:有用的NullPointerExceptions(HelpfulNullPointerExceptions)—准确描述哪个变量为null并提供其他有用信息,从而提高NullPointerExceptions的可用性。这将提高开发人员的工作效率,改进许多开发和调试工具的质量。
JEP359:记录类(Records,预览版)—该预览特性通过一种紧凑的语法来声明保存浅层不可变数据的类。此特性有助于大幅减少该类中的样板代码,不过其最大的优势在于可以将数据建模为数据。用户可以轻松、清楚、简洁地声明这些浅层不可变数据聚合。
JEP361:Switch表达式(SwitchExpressions,标准版)—在JDK12和JDK13中,Switch表达式为预览特性,现已成为标准特性。它允许使用switch作为语句或表达式。此特性简化了日常编码,并为此版本中的模式匹配(JEP305)预览特性做好了准备。
JEP364:macOS上的ZGC以及JEP365:Windows上的ZGC—尽管大多数需要ZGC的用户也需要Linux环境的可扩展性,但通常需要通过部署和测试以便在macOS和Windows上支持ZGC。还有一些针对Windows和macOS的桌面应用也将受益于ZGC。
JEP368:文本块(TextBlocks,第二次预览版)—文本块作为预览特性首次引入Java13后收到了众多最终用户的反馈。现在,文本块得到了增强,再次作为预览特性出现在Java14中,目标成为未来JDK版本的标准特性。使用文本块可以轻松表达跨多行源代码的字符串。它提高了Java程序中以非Java语言编写的代码的字符串的可读性;它约定,任何新构造的文本块都可以用字符串相同的字符集表示,解释相同的转义序列并以与字符串相同的方式进行操作。
JEP370:外部内存访问API(Foreign-MemoryAccessAPI,孵化阶段)—此API可允许Java程序安全、高效地访问Java堆之外的外部内存。
对于寻求商业支持的用户和企业,甲骨文还提供一种低成本、可预测的支持解决方案—OracleJavaSE订阅服务。目前,该服务已得到全球成千上万家不同规模类型组织的广泛使用。通过该服务,用户可以获得JavaSE许可证以及所需系统的全面支持,而且可以随需随用。这些客户可以定期直接从甲骨文获得所支持版本经过测试与认证的性能、稳定性及安全性更新。
Java一直以来都是深受软件开发者青睐的首选编程语言。伴随着Java14创新功能的按时交付,对未来的周详规划以及对生态系统的持续投入,Java平台将继续为现代应用开发注入动力。
其他资源
甲骨文将于3月26日举办Java14网络研讨会,届时安排有现场问答—点击这里注册
阅读Java14技术博文—点击这里
了解有关OracleOpenJDK14正式发布版的更多信息—点击这里
通过ProjectAmber、ProjectPanama、ProjectLoom和ProjectValhalla了解Java如何推进未来创新