JDK 18: Java 18中的新特性

Java 18孵化一个向量API,预览为开关模式匹配表达式,采用utf - 8作为默认字符集,包括一个简单的web服务器,等等。

  • 在Facebook上分享
  • 在Twitter上分享
  • 分享在LinkedIn
  • 在Reddit分享
  • 通过电子邮件分享
  • 印刷资源
JDK 18: Java 18中的新特性
TheCulinaryGeek2.0 (CC)

Java开发工具包(JDK) 18现在可以正式生产。的新版本标准Java有9个新特性,包括一个简单的web服务器和一个预览的模式匹配开关

OpenJDK页面列出以下特性作为正式针对JDK 18:服务提供者接口,一个简单的web服务器,第三个孵化向量的API,代码片段,重新实现的核心反映,一个utf - 8字符集,外国的第二个孵化器和内存API函数,第二个预览switch语句的模式匹配和终结的弃用,这是最后一个。

JDK 17是一个长期支持(LTS)释放,将会收到至少八年的支持从Oracle, JDK 18将短期支持6个月的主版本。JDK 18可以下载oracle.com

JDK 18提议的细节包括:

  • 反对终结的删除在以后的版本。终结器有缺陷导致重大现实问题的安全、性能、可靠性和可维护性。它也有一个困难的编程模型。终结是默认启用,但可以禁用促进早期测试。这将是在一个功能,在默认情况下禁用发布和删除完全在后面的版本。提案呼吁一个命令行选项来禁用终结和弃用的终结器和终结方法标准Java API。建议的目标包括帮助开发人员理解终结的危险,准备开发人员最终去除,并提供简单的工具来帮助检测依赖终结。在Java 1.0中引入的,终结是旨在帮助避免资源泄漏。一个类可以声明一个终结器的方法保护无效finalize ()——他的身体释放任何潜在的资源。垃圾收集器将安排一个遥不可及的对象的终结器之前被称为回收对象占用的内存;反过来,完成方法可以采取行动,如调用对象的关闭。这看起来像是一个安全网,防止资源泄漏有效,但存在缺陷包括不可预测的延迟,当一个对象之间有很长一段时间的流逝变得遥不可及的,当其终结器被调用;与终结器代码无约束的行为,可以采取任何行动,包括恢复对象,使其可获得的;终结器总是启用,没有明确的注册机制;终结器可以以任意顺序未指定的线程上运行。鉴于终结的问题,建议开发人员使用替代技术,以避免资源泄漏,即try-with-resources语句和清洁工。(见JDK增强建议421详情)。
  • 互联网地址解析SPI,建议是定义一个SPI地址解析,以便为主机和名称Inet.Address可以使用内置的解析器解析器以外的平台。这种努力的动机包括更好的支持项目织机并发性和新编程模型在Java中,随着集成新的网络协议,定制,并使测试。该提案不涉及发展JDK的另一个解析器。
  • 第二预览模式匹配的开关在Java语言中,将加强与模式匹配开关表达式和语句,以及扩展的语言模式。这是预览JDK 17。扩展模式匹配开关允许将一个表达式测试模式,每一个都有特定的行动,所以复杂的面向数据的查询可以简明地表达和安全。这个特性来自项目琥珀OpenJDK项目集中在较小的,生产性的Java特性。“模式匹配开关是每一个Java程序员会看到和遇到,能够利用“乔治·萨博说,在甲骨文Java平台集团副总裁。的能力显示了模式匹配广泛支持在Java中;以前是可用的运算符。这种编程风格将成为第二天性,萨博说。
  • 重新实现核心反映与处理方法将重装lang.reflect.Method,构造函数,的基础上java.lang.invoke方法处理。有方法处理作为反映底层机制将减少维护和开发成本的数组java.lang.invokeapi。
  • 简单的web服务器的建议开始,一个命令行工具将提供最低限度的web服务器只提供静态文件。任何CGI或类似于servlet功能是可用的。原型的工具将是有用的,特别的编码,和测试,特别是在教育环境。计划的目标包括提供一个开箱即用的静态HTTP文件服务器容易设置和最小的功能,减少开发人员的活化能和使JDK更平易近人,和提供一个默认实现通过命令行一起小的API编程创建和定制。提供一个功能丰富的或商用服务器不是目标的建议。
  • 第二个孵化的外国和内存API函数中,介绍了一个API, Java程序可以通过互操作与Java运行时外的代码和数据。通过调用JVM之外的外国函数,代码,通过安全访问外国记忆——记忆不是由JVM——API允许Java程序调用本地库和处理本地数据没有脆性和JNI (Java native Interface)的危险。的目的是取代JNI优越,纯Java开发模型。这个API是JDK 17孵化。JDK 18,细化将合并,根据反馈,比如支持更多的运营商,如布尔和MemoryAddress内存访问var处理,和新的API将Java数组复制到内存段。
  • 向量的API将第三次孵化JDK 18岁,此前被孵化JDK 16JDK 17。这个提议将表达向量计算,在运行时编译优化向量指令CPU架构的支持,实现性能优于标量计算。向量操作表达一定程度的并行化使更多的工作要做在一个CPU周期,从而产生显著的性能改进。旨在提供一种平台无关的向量API编写复杂的算法在Java中,使用现有的热点auto-vectorizer但用户模型向量化更可预测。JDK 18也添加支持手臂标量矢量扩展平台和提高性能的向量操作接受面具在硬件架构支持掩蔽。向量的API也来自巴拿马的项目
  • 指定utf - 8作为默认的字符集标准Java api。utf - 8是一种variable-wide电子通信和字符编码被认为是web标准的字符集。编码字符集字符编码能够在网络上所有的人物。通过这种改变,api,依赖于默认的字符集行为始终在所有实现,操作系统,语言环境,和配置。这项提议并不打算定义新的java标准或JDK-specific api。提案的支持者认为,从Java应用程序在很多情况下会看到任何影响选择的utf - 8, MacOS,许多Linux发行版,许多服务器应用程序已经支持utf - 8。然而,在其他环境中有风险,最明显的是,应用程序根据处理数据时的默认字符集错误行为产生时默认的字符集是未指定的。默默地可能出现数据损坏。主要影响预计将落在Windows系统的用户在亚洲地区甚至一些亚洲和其他地区服务器环境。
  • 代码片段在Java API文档,涉及的介绍@snippet标签标准的JavaDoc Doclet,简化API文档中包含示例源代码。在该计划的目标是促进源代码片段的验证提供了API访问这些碎片。虽然正确性是作者的责任,增强支持在JavaDoc和相关工具可以让它更容易实现。其他目标包括使现代风格,如语法高亮显示、以及自动链接名称声明,并允许更好的IDE支持创建和编辑片段。提案指出,API文档的作者常常用一些片段的源代码文档注释。

尽管JDK 18是一个非lts(长期支持)支持的版本只有六个月的支持,它仍然是生产质量,萨博说。LTS发布到每两年,下一个,由于JDK 21日2023年9月。JDK 18之后,JDK 19定于今年9月。

版权©2022 ID金宝搏体育下载G通信公司。

如何选择low-code开发平台