「这是我参与11月更文挑战的第1天,活动详情查看:​​2021最后一次更文挑战​​」

作者主页:​​海拥​

作者简介:HDZ核心组成员、全栈领域优质创作者、蝉联C站周榜前十

粉丝福利:进​​粉丝群​​每周送四本书(每位都有),每月抽送各种小礼品(搪瓷杯、抱枕、鼠标垫、马克杯等)

Java 17 LTS 是 Java SE 平台的最新长期支持版本。JDK 17 二进制文件可以在生产中免费使用,并且可以在​​Oracle 免费条款和条件许可​​下免费重新分发,LTS 代表长期支持,它于2021年9月15日发布 。

这意味着什么?

当人们熟悉并理解操作时,没有单调的心态和频繁的发布。基本上,JDK17 的 Open LTS 版本现已发布,它由开发工具、一组库、一个 Java 虚拟机和其他文件组成。每次发布时,我们都会看到新功能,同时检查其中一些是否被更改或删除。让我们讨论开放 LTS 版本的演变,否则直接切换到安装部分或更新到它。

Open LTS Java 版本的演变

还记得过去,我们期待新的 Java 版本,例如 2006 年到 2012 年的 Java 6,2013 年的 Java 7,然后是 2014 年的 Java 8,其中引入了最流行的概念 lambda流和流。直到现在都很好,因为新版本可以解释为 Java 正在成为 IT 行业的热门产品。现在坚持下去,我们会在很短的时间间隔内看到新的 Java 版本,例如到 2017 年我们有 Java 9,到 2018 年我们有 Java 10,同年我们确实看到了 Java 11。但是这一次 Java 在行业中有着更深的根基大多数公司选择 Java 作为他们的主要开发语言,对员工的技能要求也很高。 

众所周知,这种编程语言是由Oracle 系统拥有、设计和更新的,所以这家公司会大规模扩张,2018 年之后,我们可以绘制出每年肯定会推出新版本的模式。我们也在 2019 年看到 Java 12、Java 13。到 2020 年,我们看到新的 Java LTS 发布周期是每 6 个月之后,Java 14 和 Java 15 也会在 2020 年发布。现在在现在去年,我们已经将 Java 16 视为最新的 LTS,与往常一样,随着快速扩展,我们也看到一个新的 LTS Java17,它于 2021 年 9 月 15 日推出, 现在回到最近。

大多数开发人员喜欢它,有些不是他们的感知,但对于有进取心的世界来说它变得乏味,因为它对公司来说变得紧张,在连续 6 个月后,新版本推出一些新功能,同时消除一些以前的功能,所以为了正确的工作流程,每个 LTS 版本都可以访问长达数年。当今世界有一些公司,其中一些公司选择稳定性,而其他公司则选择引入新功能的可扩展性和易用性。

JDK17 中引入的特性 

为了换工作流程每个人都为这个版本的重大更新而疯狂。但开发人员应该感到失望,因为没有像我们从通常称为 JEPS 的 JDK 增强提案中看到的那样大的发布更新版本检查,如下所示:

306:恢复始终严格的浮点语义 

356:增强型伪随机数生成器

382:新的 macOS 渲染管线

391:macOS/AArch64 端口

398:弃用 Applet API 以进行删除

403:强封装的JDK内部

406:开关模式匹配(预览)

407:移除 RMI 激活

410:移除实验性 AOT 和 JIT 编译器 

411:弃用安全管理器以进行删除 

412:外部函数和内存API(孵化器)

414:Vector API(第二孵化器)

415:特定于上下文的反序列化过滤器

由此,我们认为此版本中没有显著的标记更改,但仍在深入了解它们,为此我们将它们分为 4 类,如下所示:

  1. 不错的开发人员类型的东西
  2. 特定的开发人员类型的东西
  3. 跟上苹果的各种东西
  4. 清理各种东西

类别 1:优秀的开发人员 

406:开关模式匹配(预览)

1.1 交换机的模式匹配:

它通过允许模式出现在 case 标签中来允许模式和语句,从而扩展了 switch 表达式和语句的表达能力和适用性。它还允许在需要时放松换的历史无效敌意。

引入了两种新模式,如下所示:

  • 保护模式:使用模式 && 布尔表达式进一步细化
  • 带括号的模式

1.2 密封类:

使用密封类和接口增强 java 编程语言。密封类和接口限制哪些其他类或接口可以扩展或实现它们。

语法:

public abstract sealed class Animalpermits Dog, Cat, Rabbit {...}复制代码

类别 2:特定开发人员

306:恢复始终严格的浮点语义 

2.1 恢复 Always-Strict 浮点语义:

它使浮点运算始终严格。

2.2 增强型伪随机数生成器:

它为伪随机数生成器提供了新的接口类型和实现,以便更轻松地使用各种 PRNG 算法并更好地支持基于流的操作。

2.3 强封装的JDK内部:

它强有力地封装了 JDK 的所有非关键内部元素 

2.4 外部函数和内存API(孵化器):

它引入了一个 API,Java 程序可以通过它在 Java 运行时之外解释代码和数据。

2.5 Vector API(二次孵化器):

它引入了一个 API 来表达向量计算,这些计算在运行时可靠地编译为最佳向量指令。

2.6 上下文特定的反序列化过滤器:

它允许应用程序配置特定于上下文和动态选择的反序列化过滤器。

类别 3:跟上 Apple 的各种东西

3.1 新的 macOS 渲染管线:

它更改了 macOS 的 Java 2D macOS 渲染管道,以使用 Apple Metal API 而不是已弃用的 Apple OpenGL API。 

3.2 macOS/AArch64 端口

类别 4:清理各种东西

4.1 弃用 Applet API 以进行删除:

Applet API 将被删除,因为它已被弃用,因为 JDK9 大多数浏览器不再支持它。

4.2 移除RMI激活:

尽管 RMI 仍在使用,但 RMI 激活机制随着过去十年的 Web 技术而过时。

4.3 移除实验性 AOT 和 JIT 编译器

删除实验性的基于 Java 的提前 (AOT) 和即时 (JIT) 编译器。

4.4 弃用安全管理器以进行移除:

弃用安全管理器以在未来版本中移除。安全管理器可追溯到 java 1.0。多年来,它一直不是保护客户端 Java 代码的主要手段。

安装JDK17

现在让我们了解一下如何下载最新版本。为了下载最新的 LTS 版本,即 JDK

步骤 1: 使用浏览器​​访问 Oracle 网站​​。

步骤 2: 根据您的操作系统下载版本,不同的操作系统请参考如下:

  • 适用于 Linux 的 .debian
  • 适用于 macOS 的 .dmg
  • 适用于 Windows 的 .exe

继续下一步并选择要在本地计算机上安装的目录,注意可以在安装过程中通过以下快照看到 JRE 内置支持,因此您无需按照标题图像中的理由单独添加它。

JDK 17 – Java 17 中的新特性_java

步骤 3: 设置系统环境变量的路径,为了检查是否安装了这个新的 JDK,请通过终端输入以下命令进行验证。

javac --versionjava --version复制代码