当前位置:闪电软件园 > 应用 > 编程开发 >

Java SE Development Kit (JDK) 16.0.2

(认准闪电软件园)
  • 浏览(
  • 更新时间:2021-07-21
  • 软件大小:未知
  • 界面语言:简体中文
  • 授权方式:共享软件
  • 运行环境:Win7/win8/win10
  • 官方网站:闪电软件园

软件标签:Java SE Development Kit 16 
Java SE Development Kit (JDK) 16.0是Java平台标准版开发套件(JDK)。JDK是用于使用Java编程语言构建应用程序和组件的开发环境。JDK包含一些工具,这些工具可用于开发,测试和监视以Java编程语言编写并在Java平台上运行的程序。使用可以帮助开发Java开发人员和程序员。 这个大型套件还可以完全测试并运行您的扩展软件。您将获得Java编程所需要的各种量软件和工具, 能够自由灵活的测试和运行由Java编程语言开发的软件。功能齐全,使用友好,是不可或缺的Java SE开发工具包!最新JDK16下载,欢迎有需要的朋友来本站下载体验!

JDK 16的新增功能

1、核心库
EP  JEP 396:默认情况下强烈封装JDK内部
强烈封装JDK的所有内部元件通过默认,除了关键内部API如sun.misc.Unsafe。允许最终用户选择从JDK 9开始默认使用的宽松强封装。
进行此更改后,启动器选项的默认值--illegal-access现在为,deny而不是permit。结果,使用大多数内部类,方法或JDK字段的现有代码将无法运行。可以通过指定使这样的代码在JDK 16上运行--illegal-access=permit。但是,该选项将在以后的版本中删除。
2、核心库
EP  JEP 390:基于值的类的警告
所述的用户基于值的类通过标准库-特别包括原始包装类-应避免依赖于类实例的身份的用户提供。不鼓励程序员调用包装器类构造函数,现在不建议将其删除。新的javac警告不鼓励在基于值的类实例上进行同步。也可以使用命令行选项激活有关同步的运行时警告-XX:DiagnoseSyncOnValueBasedClasses。
3、core-libs / java.lang:reflect
➜ 添加InvocationHandler :: invokeDefault方法以支持代理的默认方法
接口中invokeDefault已添加了新方法,java.lang.reflect.InvocationHandler以允许调用代理接口中定义的默认方法。
4、核心库/java.nio
➜  JEP 380:Unix域套接字
提供了Unix域套接字(AF_UNIX)的支持java.nio.channels,SocketChannel以及ServerSocketChannel类。
有关更多信息,请参见JEP-380。
5、核心库/java.time
➜ 日时段支持已添加到java.time格式
新的格式化程序模式字母“ B”及其支持方法已添加到java.time.format.DateTimeFormatter/DateTimeFormatterBuilder类中。day periodsUnicode联盟的CLDR(https://unicode.org/reports/tr35/tr35-dates.html#dayPeriods)中定义的模式和方法转换。应用程序现在可以表示一天中的时段,例如“上午”或“晚上”,而不仅仅是am / pm。下面的示例演示了如何翻译一天中的时间段:
DateTimeFormatter.ofPattern("B").format(LocalTime.now())
本示例根据一天中的时间和语言环境生成日期时段文本。
6、核心库/java.util.stream
➜ 添加Stream.toList()方法
接口中toList已添加了新方法java.util.Stream。这会导致潜在的源与实现或扩展Stream接口的接口的类不兼容,这些类或接口还会扩展该接口,并且还会toList从其他地方静态导入方法,例如Collectors.toList。必须更改对此类方法的引用,以使用限定名称而不是静态导入。
7、热点/编译器
EP  JEP 338:载体API(孵化器)
提供孵化器模块的初始迭代jdk.incubator.vector,以表达向量计算,该向量计算在运行时可靠地编译为支持的CPU架构上的最佳向量硬件指令,从而获得优于同等标量计算的性能。
8、热点/编译器
➜ 改进的CompileCommand标志
CompileCommand标志的选项类型已用于子命令的集合。这些命令未经验证,因此拼写错误导致该命令被忽略。它们具有以下形式:
-XX:CompileCommand=option,<method pattern>,<option name>,<value type>,<value>
现在,所有选项命令都以以下形式作为普通命令存在:
-XX:CompileCommand=<option name>,<method pattern>,<value>
验证选项名称并推断类型。如果命令名称不存在或值与命令的类型不匹配,则会给出有用的错误消息。所有命令名称都不区分大小写。
选项命令的旧语法仍然可以使用。添加了选项名称,值类型和值一致的验证。
所有可用的选项都可以列出:
-XX:CompileCommand=help 
9、热点/ gc
➜  JEP 376:ZGC并发栈处理
Z垃圾收集器现在可以同时处理线程堆栈。这允许ZGC在并发阶段处理JVM中的所有根,而不是停下来暂停。ZGC暂停中完成的工作量现已变得恒定,通常不超过几百微秒。
10、热点/ gc
➜ 同时取消提交内存在G1
始终启用此新功能,并更改G1将Java堆内存返回给操作系统的时间。G1仍在GC暂停期间做出大小调整决定,但将昂贵的工作分担给与Java应用程序同时运行的线程。
11、热点/运行时
➜  JEP 387:弹性元空间
JEP 387 “弹性元空间”对VM内部的元空间和类空间的实现进行了全面检查。较少的内存用于类元数据。在涉及许多小型装载机的情况下,节省效果最为明显。类卸载后,内存会及时返回操作系统。
添加了一个开关来微调元空间回收:-XX:MetaspaceReclaimPolicy=(balanced|aggressive|none)。balanced(默认值)使VM回收内存,同时保持最小的计算开销;aggressive以稍微贵一些的簿记为代价适度提高回收率;none完全关闭回收。
开关InitialBootClassLoaderMetaspaceSize和UseLargePagesInMetaspace已弃用。
12、安全库/java.security
➜ 对RSASSA-PSS和EdDSA签名JAR支持
此增强功能包括两个主要更改:
JarSigner API和jarsigner工具现在支持使用RSASSA-PSS或EdDSA密钥对JAR文件进行签名。
而不是.SF直接对文件进行签名,而是jarsigner创建一个SignerInfosignedAttributes字段,其中包含ContentType,MessageDigest,SigningTime和CMSAlgorithmProtection。如果该jarsigner -altsigner选项指定了其他签名机制,则不会生成该字段。请注意,尽管此字段不是jarsigner在更改此代码之前由生成的,但在分析签名时始终支持该字段。这意味着带有该字段的新签名的JAR文件可以由早期的JDK版本进行验证。
13、安全库/java.security
➜  SUN,SunRsaSign和SunEC提供商支持SHA-3基于签名算法
SUN,SunRsaSign和SunEC提供程序已得到增强,以支持基于SHA-3的签名算法。这些提供程序现在支持SHA-3系列摘要的DSA签名,RSA和ECDSA签名实现。另外,在签名参数中指定时,SunRsaSign提供程序的RSASSA-PSS签名实现可以识别SHA-3系列摘要。
14、安全库/java.security
➜ 的jarsigner果脯POSIX文件权限和符号链接属性
在对包含POSIX文件权限或symlink属性的文件进行签名时,jarsigner现在将这些属性保留在新签名的文件中,但警告这些属性未签名且不受签名保护。jarsigner -verify对于此类文件,在操作过程中会打印相同的警告。
请注意,该jar工具不会读取/写入这些属性。unzip对于保留这些属性的工具而言,此更改更为明显。
15、安全库/java.security
➜ 新增-trustcacerts和-keystore选项的keytool -printcert和-printcrl命令
在-trustcacerts和-keystore选项已被添加到-printcert和-printcrl该命令的keytool效用。-printcert如果该证书是用户密钥库中或密钥库中的受信任证书,则该命令不会检查证书签名算法的弱点cacerts。该-printcrl命令使用来自用户密钥库或cacerts密钥库的证书来验证CRL ,如果无法验证,则将打印出警告。
16、security-libs / javax.crypto
➜  SunPKCS11提供商支持SHA-3相关算法
SunPKCS11提供程序已更新,并具有SHA-3算法支持。还添加了使用SHA-3以外的消息摘要对Hmac的其他KeyGenerator支持。当基础PKCS11库支持相应的PKCS11机制时,SunPKCS11提供程序现在将支持以下其他算法:
MessageDigest:SHA3-224,SHA3-256,SHA3-384,SHA3-512
Mac:HmacSHA3-224,HmacSHA3-256,HmacSHA3-384,HmacSHA3-512
签名:SHA3-224withDSA,SHA3-256withDSA,SHA3-384withDSA,SHA3-512withDSA,SHA3-224withDSAinP1363Format,SHA3-256withDSAinP1363Format,SHA3-384withDSAinP1363Format,SHA3-512withDSAinP1363Format,SHA3-224withECDSA,SHA3-256withECDSA,SHA3-256withECDSA, SHA3-224withECDSAinP1363格式,SHA3-256withECDSAinP1363格式,SHA3-384withECDSAinP1363格式,SHA3-512withECDSAinP1363格式,SHA3-224withRSA,SHA3-256withRSA,SHA3-384withRSA,SHA3-512withRSA,SHA3-224withRSASSA-PSS,SHA3-256withRSASSA-PSS,SHA3-256withRSASSA-PSS SHA3-512和RSASSA-PSS。
密钥生成器:HmacMD5,HmacSHA1,HmacSHA224,HmacSHA256,HmacSHA384,HmacSHA512,HmacSHA512 / 224,HmacSHA512 / 256,HmacSHA3-224,HmacSHA3-256,HmacSHA3-384,HmacSHA3-512。
17、security-libs / javax.net.ssl
➜ 改善证书链处理
jdk.tls.maxHandshakeMessageSize已添加新的系统属性,以设置TLS / DTLS握手中握手消息的最大允许大小。系统属性的默认值为32768(32 KB)。
jdk.tls.maxCertificateChainLength已添加新的系统属性,以设置TLS / DTLS握手中证书链的最大允许长度。系统属性的默认值为10。
18、security-libs / javax.net.ssl
➜ 改善TLS应用层协议协商(ALPN)值的编码
SunJSSE提供程序无法正确读取或写入某些TLS ALPN值。这是由于选择了Strings作为API接口,以及未记录的内部使用UTF-8字符集,该字符集将大于U + 00007F(7位ASCII)的字符转换为多字节数组,而这可能不是A期望的。同行。
现在,ALPN值使用对等体期望的网络字节表示形式表示,对于标准的基于7位ASCII的字符串,该字符串无需进行任何修改。但是,SunJSSE现在将字符串字符编码/解码为8位ISO_8859_1 / LATIN-1字符。这意味着使用U + 000007F以上的字符(以前使用UTF-8编码)的应用程序可能需要修改以执行UTF-8转换,或者将Java安全属性设置jdk.tls.alpnCharset为“ UTF-8”以还原行为。
19、security-libs / javax.net.ssl
➜  TLS支持的EdDSA签名算法
SunJSSE提供程序现在支持使用EdDSA签名算法。具体来说,SunJSSE可以使用包含EdDSA密钥的证书进行服务器端和客户端身份验证,并且可以使用使用EdDSA算法签名的证书。此外,需要数字签名的TLS握手消息支持EdDSA签名。
20、工具/ javac
EP  JEP 397:密封类(第二预览)
密封的类和接口已在JDK 16中再次进行了预览,最初是在JDK 15中添加到Java语言的。密封的类和接口限制了其他哪些类或接口可以扩展或实现它们。
21、工具/ javac
EP  JEP 395:记录
记录已添加到Java语言中。记录是Java语言中的一种新型类。它们充当不可变数据的透明载体,与普通班级相比,仪式更少。
22、工具/ javac
➜  JEP 394:模式匹配的instanceof
instanceof在JDK 16中,操作员的模式匹配已成为Java语言的最终永久特性。模式匹配使Java程序中的通用逻辑可以更简洁,更安全地表示,即从对象中有条件地提取组件。
23、工具/ jpackage
EP  JEP 392:打包工具
提供jpackage用于打包独立Java应用程序的工具。将jpackage tool被引入作为JDK 14的孵化工具通过JEP 343它在JDK 15仍然是一个孵化工具,以便有时间额外的反馈。它已在JDK 16中从孵化升级为可用于生产的功能。由于此过渡,jpackage模块的名称已从更改jdk.incubator.jpackage为jdk.jpackage。

使用说明

JDK16工具规格
1、所有平台
jar-为类和资源创建档案,并从档案中操作或还原单个类或资源
jarsigner-签名并验证Java归档(JAR)文件
java-启动Java应用程序
javac-读取Java类和接口定义,并将它们编译为字节码和类文件
javadoc-从Java源文件生成API文档的HTML页面
javap-反汇编一个或多个类文件
jcmd-将诊断命令请求发送到正在运行的Java虚拟机(JVM)
jconsole-启动图形控制台以监视和管理Java应用程序
jdb-查找并修复Java平台程序中的错误
jdeprscan-静态分析工具,它扫描jar文件(或其他一些类文件的聚合)以使用不赞成使用的API元素
jdeps-启动Java类依赖分析器
jfr-解析和打印Flight Recorder文件
jhsdb-附加到Java进程或启动事后调试器以分析崩溃的Java虚拟机(JVM)中核心转储的内容
jinfo-为指定的Java进程生成Java配置信息
jlink-将一组模块及其依赖性组装并优化到一个自定义运行时映像中
jmap-打印指定进程的详细信息
jmod-创建JMOD文件并列出现有JMOD文件的内容
jpackage-打包一个自包含的Java应用程序
jps-列出目标系统上已检测的JVM
jrunscript-运行支持交互式和批处理模式的命令行脚本外壳
jshell-以读取-评估-打印循环(REPL)交互方式评估Java编程语言的声明,语句和表达式
jstack-为指定的Java进程打印Java线程的Java堆栈跟踪
jstat-监视JVM统计信息
jstatd-监视已安装的Java HotSpot VM的创建和终止
keytool-管理加密密钥,X.509证书链和受信任证书的密钥库(数据库)
rmid-启动激活系统守护程序,该守护程序允许在Java虚拟机(JVM)中注册和激活对象
rmiregistry-在当前主机的指定端口上创建并启动远程对象注册表
serialver-以适合复制到正在演变的类中的形式为一个或多个类返回“ serialVersionUID”
2、仅Windows
jabswitch-启用或禁用Java Access Bridge
jaccessinspector-使用Java Accessibility Utilities API检查有关Java虚拟机中对象的可访问信息
jaccesswalker-浏览特定Java虚拟机中的组件树,并在树视图中显示层次结构
javaw-在没有控制台窗口的情况下启动Java应用程序
kinit-获取并缓存授予Kerberos票证的票证
klist-显示本地凭据缓存和密钥表中的条目
ktab-管理存储在本地密钥表中的主体名称和服务密钥

闪电小编说明:

Java SE Development Kit是一套特殊的Java编程语言程序员套件,具有出色的软件开发工具! Java是世界上与C和#C等其他编程语言竞争的顶级编程语言之一。 通常是一种Java编程语言,在各种操作系统(例如Android,Windows,Linux和Mac)上的软件和游戏开发中被广泛使用。 这个功能强大的Java编程语言套件及其最新更新为该套件增加了其他功能,
软件无法下载?不知道解压密码?微信关注订阅号"闪电下载"获取

本帖长期更新最新版 请收藏下载!版权声明:本站提的序列号、注册码、注册机、破解补丁等均来自互联网,仅供学习交流之用,请在下载后24小时内删除。

  • 下载地址

捐助vip:软件无法下载?联系:[email protected]

  • 猜你喜欢
  • 用户评论