JDK 17 – Java 17 中的新特性
Java 17 LTS 是Java SE 平台的最新长期支持版本。根据 Oracle 免费条款和条件许可,JDK 17 二进制文件可以在生产中免费使用,也可以免费重新分发,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 年发布。现在在现在去年,我们已经将 Java1 6 视为最新的 LTS,但与往常一样,随着快速扩展,我们应该会看到一个新的 LTS Java17,它于 2021 年 9 月 15 日推出,现在回到最近。
Most developers like it, some not from their perceptive but it becomes tedious for the enterprising world as it becomes tension for companies where after every successive 6 months new release roll out with some new feature and at the same time eradicating a few of previous features so do it was made every LTS version is accessible up to years for proper workflow. There are some companies in today’s world where some companies are opting for stability and the rest opting for scalability and ease with new features been introduced.
JDK17 中引入的特性
是的,每个人都为这个版本的重大更新而疯狂,以转换工作流程,但开发人员应该感到失望,因为没有像我们从通常称为 JEPS 的 JDK 增强提案中看到的那样大的发布更新版本检查,如下所示:
306: Restore Always-Strict Floating-Point Semantics
356: Enhanced pseudo-Random Number Generators
382: New macOS Rendering pipelines
391: macOS/AArch64 Port
398: Deprecate the Applet API for Removal
403: Strongly Encapsulated JDK Internals
406: Pattern matching for Switch(Preview)
407: Removal RMI Activation
409: Selaled Classes
410: Removal Experimental AOT and JIT Compiler
411: Deprecate the Security manager for Removal
412: Foreign Functions & memory API(Incubator)
414: Vector API(Second Incubator)
415: Context-Specific Deserialization Filters
由此,我们认为此版本中没有显着的标记更改,但仍在深入了解它们,为此我们将它们分为 4 类内容,如下所示:
- 不错的开发人员类型的东西
- 特定的开发人员类型的东西
- 跟上苹果的各种东西
- 清理各种东西
类别 1:优秀的开发人员
406: Pattern matching for Switch(Preview)
409: Selaled Classes
1.1 交换机的模式匹配:
它通过允许模式出现在 case 标签中来允许模式和语句,从而扩展了 switch 表达式和语句的表达能力和适用性。它还允许在需要时放松转换的历史无效敌意。
引入了两种新模式,如下所示:
- 保护模式:使用模式 && 布尔表达式进一步细化
- 带括号的模式
1.2密封类:
使用密封类和接口增强Java编程语言。密封类和接口限制哪些其他类或接口可以扩展或实现它们。
句法:
public abstract sealed class Animal
permits Dog, Cat, Rabbit {...}
类别 2:特定开发人员
306: Restore Always-Strict Floating-Point Semantics
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 内置支持,因此您无需按照标题图像中的理由单独添加它。
第 3 步:设置系统环境变量的路径,为了检查是否安装了这个新的 JDK,请通过终端输入以下命令进行验证。
javac --version
java --version