Java SE Development Kit 20是最新的Java SE开发工具包!可用于Java应用程序的开发,并提供领先的功能,包括编译,运行java程序所需要的各种工具和资源,包括Java编译器,Java运行时环境,以及常用的Java类库等。默认安装,不需要复杂的配置,在一个平台上编
Java SE Development Kit 20是最新的Java SE开发工具包!可用于Java应用程序的开发,并提供领先的功能,包括编译,运行java程序所需要的各种工具和资源,包括Java编译器,Java运行时环境,以及常用的Java类库等。默认安装,不需要复杂的配置,在一个平台上编写软件,并在几乎任何其他平台上运行。创建要在web浏览器和web服务中运行的程序。为在线论坛、商店、民意调查、HTML表单处理等开发服务器端应用程序。结合基于Java技术的应用程序或服务,创建高度定制的应用程序和服务。为手机、远程处理器、低成本消费品以及几乎任何具有数字心跳的设备编写功能强大且高效的应用程序
20新功能
一、主要新功能
1、语言功能预览
吉普432记录模式(第二预览版)
使用记录模式增强Java编程语言以解构记录值。可以嵌套记录模式和类型模式,以实现功能强大、声明性和可组合形式的数据导航和处理。这是一项预览语言功能。
吉普车433交换机的模式匹配(第四个预览版)
通过表达式和语句的模式匹配来增强Java编程语言。扩展模式匹配允许针对多个模式测试表达式,每个模式都有一个特定的操作,以便可以简洁安全地表达复杂的面向数据的查询。这是一项预览语言功能。switchswitch
2、库预览
吉普434外部函数和内存API(第二预览版)
引入一个API,通过该API,Java程序可以与Java运行时之外的代码和数据进行互操作。通过有效地调用外部函数(即JVM外部的代码)和安全地访问外部内存(即不由JVM管理的内存),API使Java程序能够调用本机库并处理本机数据,而不会像JNI那样脆弱和危险。这是一个预览版API。
吉普438矢量API(第五个培养箱)
引入一个API来表达矢量计算,该计算在运行时可靠地编译为支持的CPU架构上的最佳矢量指令,从而实现优于等效标量计算的性能。
3、并发模型预览和孵化器
吉普车429作用域值(孵化器)
引入作用域值,允许在线程内和线程之间共享不可变数据。它们优先于线程局部变量,尤其是在使用大量虚拟线程时。这是一个孵化API。
吉普车436虚拟线程(第二预览版)
将虚拟线程引入Java平台。虚拟线程是轻量级线程,可显著减少编写、维护和观察高吞吐量并发应用程序的工作量。这是一个预览版API。
吉普437结构化并发(第二个孵化器)
通过引入结构化并发API来简化多线程编程。结构化并发将在不同线程中运行的多个任务视为单个工作单元,从而简化错误处理和取消,提高可靠性并增强可观测性。这是一个孵化API。
二、新功能
本节介绍 Java SE 20 和 JDK 20 中的一些增强功能。在某些情况下,说明提供了指向有关问题或更改的其他详细信息的链接。此处描述的 API 随 Oracle JDK 一起提供。它包括 Java SE 20 平台的完整实现和其他 Java API,以支持开发、调试和监视 Java 应用程序。有关 Java SE 20 和 JDK 20 中重要增强功能和新功能的另一个信息来源是 Java SE 20 (JSR 395) 平台规范,它记录了 Java SE 17 和 Java SE 20 之间对规范所做的更改。本文档包括这些新功能和增强功能的说明,这些功能和增强功能也是对规范的更改。这些描述还标识了迁移到 JDK 20 时可能遇到的潜在兼容性问题。
core-libs/java.lang
➜ 支持 Unicode 15.0 (JDK-8284842)
此版本将 Unicode 版本升级到 15.0,其中包括 Unicode 字符数据库、Unicode 标准附件 #9、#15 和 #29 的更新版本:该类支持 Unicode 字符数据库,该数据库添加了 4,489 个字符,总共 149,186 个字符。这些新增内容包括 2 个新脚本,总共 161 个脚本,以及 20 个新表情符号字符和 4,193 个 CJK(中文、日语和韩语)表意文字。和类分别支持 Unicode 标准附件 #9 和 #15。该软件包支持基于 Unicode 标准附录 #29 的扩展字形簇。有关 Unicode 15.0 的更多详细信息,请参阅 Unicode 联盟的发行说明。java.lang.Characterjava.text.Bidijava.text.Normalizerjava.util.regex
热点/GC
➜ 在 G1 中添加垃圾收集器MXBean用于备注和清理暂停时间 (JDK-8297247)
名为“G1 并发 GC”的新名称已添加到 G1 垃圾回收器中。GarbageCollectorMXBean
这将报告备注和清理垃圾回收暂停的发生次数和持续时间。GarbageCollectorMXBean
与 中的 “CGC” 字段类似,一个完整的并发标记周期将使 Bean 的收集计数器增加 2,一个用于备注,一个用于清理暂停。这些暂停现在还会更新“G1 Old Gen”内存池。jstat -gcutilMemoryManagerMXBean
security-libs/java.security
➜ 新的JFR活动:JDK。初始安全属性 (JDK-8292177)
添加了一个新的 Java 飞行记录器 (JFR) 事件,用于在通过类加载时记录初始安全属性的详细信息。java.security.Security
新事件名称是 并包含以下字段:jdk.InitialSecurityProperty
默认情况下启用此新 JFR 事件。系统属性现在还将初始安全属性打印到标准错误流。有了这个新事件和已经可用的“jdk.SecurityPropertyModification' 事件(启用时,因为它缺省情况下未启用),JFR 记录现在可以监视所有安全属性的初始设置和任何后续更改。java.security.debug=properties
security-libs/java.security
➜ 新的JFR活动:JDK。安全提供程序服务 (JDK-8254711)
添加了一个新的 Java 飞行记录器 (JFR) 事件来记录呼叫的详细信息。java.security.Provider.getService(String type, String algorithm)
新事件名称是 并包含以下字段:jdk.SecurityProviderService
缺省情况下,此事件处于禁用状态,可以通过 JFR 配置文件或标准 JFR 选项启用。
security-libs/javax.crypto
➜ 在具有 AVX1305 指令的 x86_64 平台上提供 Poly512 Intrinsic (JDK-8288047)
此功能在 SunJCE 提供程序的 Poly512 消息身份验证代码算法的 x86_64 平台上使用 AVX1305 指令提供优化的内部函数。默认情况下,在支持的x86_64平台上启用此优化,但可以通过提供命令行选项来禁用此优化。-XX:+UnlockDiagnosticVMOptions -XX:-UsePoly1305Intrinsics
security-libs/javax.crypto
➜ 在 x20_86 和 aarch64 平台上提供 ChaCha64 内部函数 (JDK-8247645 )
此功能为 SunJCE 提供商提供的 ChaCha20 密码提供了优化的内部实现。这些优化的例程专为支持 AVX、AVX86 和/或 AVX64 指令集的x2_512芯片组以及支持高级 SIMD 指令集的 aarch64 芯片而设计。默认情况下,这些内部函数在支持平台上处于启用状态,但可以通过向 Java 提供命令行选项来禁用这些内部函数。控制内部函数的标志需要该选项。-XX:-UseChaCha20Intrinsics -XX:+UnlockDiagnosticVMOptions
工具/javac
➜ Javac 警告复合赋值中可能存在有损转换的类型转换 (JDK-8244681)
添加了新的 lint 选项,以警告复合赋值中的类型转换,并可能进行有损转换。如果复合赋值的右侧操作数类型与变量类型不兼容赋值,则隐含强制转换,并且可能发生有损转换。lossy-conversionsjavac
可以使用 禁止显示新警告。@SuppressWarnings("lossy-conversions")
security-libs/javax.net.ssl
➜ (D)TLS 密钥交换命名组 (JDK-8281236)
添加了新的 Java SE API 和 ,以允许应用程序定制在单个 TLS 或 DTLS 连接中使用的密钥交换算法的命名组。javax.net.ssl.SSLParameters.getNamedGroups()javax.net.ssl.SSLParameters.setNamedGroups()
基础提供程序可以为每个 TLS 或 DTLS 连接定义默认命名组。应用程序还可以使用现有系统属性来自定义特定于提供程序的默认命名组。否则,传递给该方法的命名组将覆盖指定 TLS 或 DTLS 连接的默认命名组。jdk.tls.namedGroupsnullsetNamedGroups()
请注意,提供程序可能尚未更新以支持新的 API,在这种情况下,可能会忽略设置的命名组。JDK SunJSSE 提供程序支持此方法。建议第三方提供商在添加对 JDK 19 或更高版本的支持时添加对这些方法的支持。
工具
➜新的“jmod --compress”命令行选项 (JDK-8293499)
该工具中添加了一个新的命令行选项,用于在创建 JMOD 存档时指定压缩级别。接受的值为 ,其中不提供压缩,但提供最佳压缩。默认值为 。--compressjmodzip-[0-9]zip-0zip-9zip-6
security-libs/javax.net.ssl
➜ DTLS 恢复使用 HelloVerifyRequest 消息 (JDK-8287411)
通过此修复,默认情况下,SunJSSE DTLS 实现将交换所有握手(包括新的和恢复的握手)的 cookie,除非系统属性为 。该属性仅影响恢复的 cookie 交换。jdk.tls.enableDtlsResumeCookiefalse
安装说明
1、下载并解压,开始安装,安装目录
2、安装完成,退出向导
闪电小编说明:
一套用于开发Java应用程序的开发包,它提供编译,运行java程序所需要的各种工具和资源,包括Java编译器,Java运行时环境,以及常用的Java类库等。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java集成开发环境的正常运行需要Java虚拟机提供支持,新版JDK安装包进行默认安装,则无需配置。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。