JDK17下载 Java SE Development Kit(JDK) 17.0.2 官方正式版 Win64
Java 17 LTS 是 Java SE 平台的最新长期支持版本。根据 Oracle 免费条款和条件许可,JDK 17 二进制文件可在生产中免费使用,并可免费重新分发。JDK 17 将根据这些条款接收更新,至少在 2024 年 9 月之前。JDK 是使用 Java 编程语言构建应用程序和组件的开发环境。JDK 包括用于开发和测试用 Java 编程语言编写并在 Java 平台上运行的程序的工具。本次分享的是Java SE Development Kit(JDK) 17 for Windows官方版本下载,欢迎需要此款工具的朋友前来下载体验。
JDK17新特性详解
预览版:该功能在当前版本可以使用,如果知识兔效果不是很好的话,可能以后的其他版本就会删去该功能。
最终版:该功能在之前版本效果很好,之后的每个版本中都会存在该功能。
1、switch新增模式(预览版)
使用 switch 表达式和语句的模式匹配以及对模式语言的扩展来增强 Java 编程语言。将模式匹配扩展到 switch 允许针对多个模式测试表达式,每个模式都有特定的操作,知识兔以便可以简洁安全地表达复杂的面向数据的查询。基于JDK16 instanceof模式匹配(最终版)优化升级switch使用方法,先回忆下JDK16模式匹配(最终版)
if (obj instanceof String s) {
// 直接使用 s拼接字符串
s += “heihei”;
} else if (obj instanceof Integer i){
// 直接使用i进行整型逻辑运算
i += 1;
}
switch可直接用instanceof模式匹配选择(需要提前考虑null判断)
Object o;
switch (o) {
case null -> System.out.println(“首先判断对象是否为空,走空指针逻辑等后续逻辑”);
case String s -> System.out.println(“判断是否为字符串,s:” + s);
case record p -> System.out.println(“判断是否为Record类型: ” + p.toString());
case int[] arr -> System.out.println(“判断是否为数组,展示int数组的长度” + ia.length);
case Integer i -> System.out.println(“判断是否为Intger对象,i:” + i);
case Student s -> System.out.println(“判断是否为具体学生对象,student:” + s.toString());
case UserCommonService -> System.out.println(“判断是否为普通用户实现类,然后知识兔走普通用户逻辑”);
case UserVipService -> System.out.println(“判断是否为vip用户实现类,然后知识兔走vip用户逻辑”);
default -> System.out.println(“Something else”);
}
2、Realed class密封类(最终版)
密封类和接口限制哪些其他类或接口可以扩展或实现它们。
public sealed interface Shape{
final class Planet implements Shape {}
final class Star implements Shape {}
final class Comet implements Shape {}
}
public abstract sealed class Test{
final class A extends Test {}
final class B extends Test {}
final class C extends Test {}
}
3、随机数增强
为伪随机数生成器 (PRNG) 分享新的接口类型和实现,知识兔包括可跳转的 PRNG 和额外的一类可拆分 PRNG 算法 (LXM)。
4、浮点运算更加严格
简化数字敏感库开发,知识兔包括java.lang.Math和java.lang.StrictMath(对开发无实际意义)
5、Parallel GC 默认启用
Parallel GC 默认启用自适应并行处理,并行GC确定java.lang.ref.Reference在垃圾收集期间用于处理实例的最佳线程数。
默认-XX:ParallelRedProcEnabled: true。在有多个线程可用于垃圾收集的机器上,明显改善了垃圾收集暂停的阶段,如果知识兔遇到垃圾收集暂停增加的情况,知识兔可以通过-XX:ParallelRedProcEnabled在命令行上指定到原始行为
6、增强TreeMap
增强JDK-8176894(TreeMap 没有对 putIfAbsent()、computeIfAbsent()、computeIfPresent()、compute() 方法的专门实现。默认实现经常导致两次树遍历,这会损害性能)
7、弃用Socket实现工厂机制
弃用并最终删除用于为java.net 包中的套接字类型静态配置系统范围工厂 的 API 点
具体如下:
* 方法:
static void ServerSocket.setSocketFactory (SocketImplFactory fac)
static void Socket.setSocketImplFactory (SocketImplFactory fac)
static void DatagramSocket.setDatagramSocketImplFactory (DatagramSocketImplFactory fac)
* Types
java. net SocketImplFactory
java.net DatagramSocketImplFactory
也可以弃用java.net SocketImplFactory 和 DatagramSocketImplFactory 类型 ,因为它们的唯一用途与上述工厂有关 设置方法。
8、统一日志支持异步日志刷新
为了避免在使用统一日志的线程中出现不希望的延迟,用户现在可以请求统一日志系统以异步模式运行。通过传递命令行选项来完成的-Xlog:async。在异步日志模式下,日志站点将所有日志消息排入缓冲区。独立线程负责将它们刷新到相应的输出。中间缓冲区是有界的。缓冲区耗尽时,将丢弃排队消息。知识兔可以使用命令行选项控制中间缓冲区的大小-XX:AsyncLogBufferSize=
9、新增 java.time.InstantSource
java.time.InstantSource引入了一个新界面。这个接口是一个抽象java.time.Clock,只关注当前时刻,不涉及时区。
10、javadoc工具
新的“新 API”页面和改进的“弃用”页面,JavaDoc 现在可以生成一个页面,总结最近 API 的变化。要包含的最新版本列表是使用–since命令行选项指定的。这些值用于查找@since要包含在新页面上的具有匹配标签的声明。该–since-label命令行选项分享了“新API”页面的标题文本使用。
Java SE Development Kit 17安装教程
1、在知识兔下载并解压缩后,知识兔双击“jdk-17_windows-x64_bin.exe”,知识兔根据安装向导提示,知识兔选择“下一步”
2、默认安装在C盘,继续“下一步”
3、正在安装,稍等片刻即可,中途不要关闭电脑
4、好了,到这里Java SE Development Kit 17就安装完成啦
安装 JDK 17 和 JRE 8 时修复 Shim 情况
当您安装 JDK 17,然后知识兔安装 JRE 8,然后知识兔运行该 java -version命令时,1.8.0输出中显示的是17。这是因为 javapath位于用户环境路径中 JDK 17 位置之前。
这是 JRE 8 安装程序的一个错误。要解决此填充程序的情况,请卸载并重新安装 JDK 17。
JDK安装疑难解答
解压期间系统错误
如果知识兔您看到错误消息:system error during decompression,则包含该TEMP目录的磁盘上可能没有足够的空间。
程序无法在 DOS 模式下运行
如果知识兔您看到错误消息:This program cannot be run in DOS mode,请执行以下操作:
打开 MS-DOS 外壳程序或命令提示符窗口。
右键单击标题栏。
选择属性。
选择程序选项卡。
单击高级。
确保未选中防止基于 MS-DOS 的程序检测 Windows 项。
选择确定。
再次选择确定。
退出 MS-DOS 外壳。
重启你的电脑。
不属于系统代码页的字符
如果知识兔安装目录不是系统区域设置代码页的一部分,则可能会出现 1722 错误。为防止出现这种情况,请确保用户和系统区域设置相同,并且知识兔安装路径仅包含作为系统区域设置代码页一部分的字符。知识兔可以在区域选项或区域设置控制面板中设置用户和系统区域设置。
相关的错误编号是 4895647。
在 JDK 卸载失败后清理注册表
有时,尝试通过 Windows添加/删除程序卸载 JDK 会 在注册表中留下一些未完全删除的 Java 条目。这些遗留的注册表项可能会导致安装新版本 Java 时出现问题。以下是清理注册表项的方法:
程序安装和卸载疑难解答(推荐方法)
手动注册表编辑
程序安装和卸载疑难解答(推荐方法)
运行程序安装和卸载疑难解答来修复损坏的注册表项,这些注册表项会阻止程序完全卸载或阻止新的安装和更新。
手动编辑注册表(仅当 Fix It 实用程序不起作用时才使用此功能)
错误地编辑您的注册表可能会严重损坏您的系统。在更改注册表之前,您应该从您的计算机备份任何有价值的数据。
使用File->Export注册表编辑器的功能在删除之前保存注册表项。如果知识兔您删除了错误的注册表项,您可以使用该File->Import功能从保存的备份文件中恢复注册表。
要删除注册表项:
确定正确的注册表项。请参阅查找 JDK 注册表项和 UninstallString 值。
突出显示该键,右键单击并选择 Delete。
出现提示时单击是。
JDK 被卸载。
在 Windows 上卸载 JDK
要卸载 JDK 17,请使用Microsoft Windows控制面板中的添加/删除程序实用程序。
在静默模式下卸载 JDK
您可以使用命令行卸载 JDK。
使用以下命令以静默模式卸载JDK:
MsiExec.exe/X{
例如,要卸载 JDK 15,请运行以下命令:
MsiExec.exe /X{E04E5624-3CF1-5E84-A439-4D8FAAA05C79}
下载仅供下载体验和测试学习,不得商用和正当使用。