python与java的区别 java语言的主要特点是什么( 二 )


JEP 392,打包工具此特性最初是作为 Java 14 中的一个孵化器模块引入的,该工具允许打包自包含的 Java 应用程序 。它支持原生打包格式,为最终用户提供自然的安装体验,这些格式包括 Windows 上的 msi 和 exe、macOS 上的 pkg 和 dmg,还有 Linux 上的 deb 和 rpm 。它还允许在打包时指定启动时参数,并且可以从命令行直接调用,也可以通过 ToolProvider API 以编程方式调用 。注意 jpackage 模块名称从 jdk.incubator.jpackage 更改为 jdk.jpackage 。这将改善最终用户在安装应用程序时的体验,并简化了“应用商店”模型的部署 。
为未来做好准备JEP 390,对基于值的类发出警告此特性将原始包装器类(java.lang.Integer、java.lang.Double 等)指定为基于值的(类似于 java.util.Optional 和 java.time.LocalDateTime),并在其构造器中添加 forRemoval(自 JDK 9 开始被弃用),这样会提示新的警告 。在 Java 平台中尝试在任何基于值的类的实例上进行不正确的同步时,它会发出警告 。
许多流行的开源项目已经在其源中删除了包装构造器调用来响应 Java 9 的弃用警告,并且鉴于“弃用移除”警告的紧迫性,我们可以期望更多开源项目跟上这一步伐 。
JEP 396,默认强封装 JDK 内部元素此特性会默认强封装 JDK 的所有内部元素,但关键内部 API(例如 sun.misc.Unsafe)除外 。默认情况下,使用早期版本成功编译的访问 JDK 内部 API 的代码可能不再起作用 。鼓励开发人员从使用内部元素迁移到使用标准 API 的方法上,以便他们及其用户都可以无缝升级到将来的 Java 版本 。强封装由 JDK 9 的启动器选项–illegal-access 控制,到 JDK 15 默认改为 warning,从 JDK 16 开始默认为 deny 。(目前)仍然可以使用单个命令行选项放宽对所有软件包的封装,将来只有使用–add-opens 打开特定的软件包才行 。
孵化器和预览特性JEP 338,向量 API(孵化器)该孵化器 API 提供了一个 API 的初始迭代以表达一些向量计算,这些计算在运行时可靠地编译为支持的 CPU 架构上的最佳向量硬件指令,从而获得优于同等标量计算的性能,充分利用单指令多数据(SIMD)技术(大多数现代 CPU 上都可以使用的一种指令) 。尽管 HotSpot 支持自动向量化,但是可转换的标量操作集有限且易受代码更改的影响 。该 API 将使开发人员能够轻松地用 Java 编写可移植的高性能向量算法 。
JEP 389,外部链接器 API(孵化器)该孵化器 API 提供了静态类型、纯 Java 访问原生代码的特性,该 API 将大大简化绑定原生库的原本复杂且容易出错的过程 。Java 1.1 就已通过 Java 原生接口(JNI)支持了原生方法调用,但并不好用 。Java 开发人员应该能够为特定任务绑定特定的原生库 。它还提供了外来函数支持,而无需任何中间的 JNI 粘合代码 。
JEP 393,外部存储器访问 API(第 3 个孵化器)在 Java 14 和 Java 15 中作为孵化器 API 引入的这个 API 使 Java 程序能够安全有效地对各种外部存储器(例如本机存储器、持久性存储器、托管堆存储器等)进行操作 。它提供了外部链接器 API 的基础 。
JEP 397,密封类(第二预览)这个预览特性可以限制哪些类或接口可以扩展或实现它们;它允许类或接口的作者控制负责实现它的代码;它还提供了比访问修饰符更具声明性的方式来限制对超类的使用 。它还通过对模式进行详尽的分析来支持模式匹配的未来发展 。
提升 OpenJDK 开发人员的生产力其余更改对 Java 开发人员(使用 Java 编写代码和运行应用程序的人员)不会直接可见,而只对 Java 开发人员(参与 OpenJDK 开发的人员)可见 。
JEP 347,启用 C++14 语言特性(在 JDK 源代码中)它允许在 JDK C++ 源代码中使用 C++14 语言特性,并提供在 HotSpot 代码中可以使用哪些特性的具体指导 。在 JDK 15 中,JDK 中 C++ 代码使用的语言特性仅限于 C++98/03 语言标准 。它要求更新各种平台编译器的最低可接受版本


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: