JAVA平台经过了大量开发者的人认证,至今仍然是应用程序开发的首要选择,下面带来的JAVA JDK是为在JAVA下进行开发的应用程序准备的开发工具包,提供完整的开发环境、语言支持、以及基础支持库的源代码内容等,并且使用新的EdDSA签名技术,为应用程序添加安全性更好的密码保护,持续稳定运作。
1、可执行文件
(在bin/子目录中)Java运行时环境(JRE)的实现。JRE包括Java虚拟机(JVM?),类库和其他文件,这些文件支持以Java编程语言编写的程序的执行。该目录还包括工具和实用程序,可帮助您开发,执行,调试和记录以Java编程语言编写的程序。
2、配置文件
(在conf/子目录中)包含用户可配置选项的文件。可以编辑此目录中的文件,以更改JDK的访问权限,配置安全算法并设置Java密码学扩展策略文件,这些文件可用于限制JDK的加密强度。
3、C头文件
(在include/子目录中)C语言头文件,支持使用Java本机接口和Java虚拟机(JVM)调试器接口进行本机代码编程。
4、编译的Java模块
(在jmods/子目录中)jlink用于创建自定义运行时的编译模块。
5、版权和许可文件
(在legal/子目录中)每个模块的许可和版权文件。将第三方通知包含为.md(markdown)文件。
6、其他库
(在lib/子目录中)JDK所需的其他类库和支持文件。这些文件不供外部使用。
7、组态
配置JRE或JDK不被视为出于重新分发目的的修改。
您可以通过下修改文件配置软件conf/目录%的Java平台标准版(Java SE)文档,包括选择一个或下创建自己的Java加密扩展策略文件conf/security/policy。一旦选择或创建自己的文件,就不需要包括其他策略文件。
1、会计货币格式支持
可以通过NumberFormat.getCurrencyInstance(Locale)使用 u-cf-account Unicode语言环境扩展名来获得具有记帐样式的货币格式实例,其中在某些语言环境中用括号将金额格式化。例如在中Locale.US,它将格式化为 ($3.27)而不是 -$3.27。有关更多信息,请参阅CLDR的记帐货币格式样式。
2、JEP 359记录(预览)
在JDK 14中, 记录(JEP 359)预览功能添加了一个新类java.lang.Record。该java.lang包是按需隐式导入的import java.lang.*。如果现有源文件中的代码按需导入某些其他程序包,例如,import com.myapp.*;并且该其他程序包声明了一个名为的类型Record,则引用该类型的现有源文件中的代码将不进行更改而不会编译。要编译代码,请Record使用单类型导入(例如)导入其他包的类型import com.myapp.Record;。
3、澄清ReadableByteChannel.read()的规范和相关方法
的规格DatagramChannel.receive(),FileChannel.read(ByteBuffer,long),ReadableByteChannel.read(),和ScatteringByteChannel.read()方法已经在此版本已经更新到指定的IllegalArgumentException是,如果(任何)缓冲区参数(S)是只读的抛出。此更改仅调整规范以匹配现有的长期行为。
4、Windows上的JEP 365 ZGC
Z垃圾收集器(ZGC)现在可在Windows上作为实验功能使用。要启用它,请使用JVM标志-XX:+UnlockExperimentalVMOptions -XX:+UseZGC。有关更多信息,请参见Windows上的JEP 365:ZGC。
5、macOS上的JEP 364 ZGC
Z垃圾收集器(ZGC)现在可作为macOS上的实验功能使用。要启用它,请使用JVM标志-XX:+UnlockExperimentalVMOptions -XX:+UseZGC。有关更多信息,请参见macOS上的JEP 364:ZGC。
6、并行GC改进
并行GC已采用与其他收集器相同的任务管理机制来调度并行任务。这可能会显着提高性能。由于这一变化,以下产品标志已过时: -XX:BindGCTaskThreadsToCPUs,-XX:UseGCTaskAffinity,和-XX:GCTaskTimeStampEntries。
7、G1的JEP 345 NUMA感知内存分配
G1垃圾收集器现在尝试跨垃圾收集在年轻一代的同一NUMA节点上分配和保留对象。这类似于并行GC NUMA意识。
G1尝试使用严格的交错在所有可用的NUMA节点上均匀分布Humongous和Old区域。从年轻一代复制到老一代的对象的放置是随机的。
通过使用-XX:+UseNUMA命令行选项,可以自动启用这些新的NUMA-Aware内存分配试探法。有关更多信息,请参见 JEP 345:G1的NUMA感知内存分配。
8、JEP 349 JFR事件流
JDK Flight Recorder(JFR)现在通过使用位于jdk.jfr.consumer包中的新API动态地消耗事件来支持对Java应用程序的连续监视。使用JFR时始终启用该功能,这意味着直到最后一秒的记录数据都可用于过程中和过程外消耗。有关更多信息,请参见JEP 349:JFR事件流。
9、TLS,CertPath和签名JAR中的弱命名曲线默认情况下处于禁用状态
默认情况下,通过将弱命名曲线添加到以下disabledAlgorithms安全属性来禁用它们: jdk.tls.disabledAlgorithms, jdk.certpath.disabledAlgorithms和 jdk.jar.disabledAlgorithms。下面列出了命名曲线。
如果要禁用47条弱命名曲线,则向每个disabledAlgorithms属性添加单独的命名曲线将不堪重负。为减轻这种情况,实现了一个新的安全属性 jdk.disabled.namedCurves,该disabledAlgorithms属性可以列出所有属性共有的命名曲线。要在属性中使用新disabledAlgorithms属性,请在完整属性名之前加上关键字include。用户仍然可以将单独的命名曲线添加到disabledAlgorithms与此新属性分开的属性。这些属性中不能包含其他disabledAlgorithms属性。
要恢复命名曲线,请include jdk.disabled.namedCurves从特定或所有 disabledAlgorithms安全性属性中删除。要恢复一条或多条曲线,请从jdk.disabled.namedCurves属性中删除特定的命名曲线。
曲线被禁用通过jdk.disabled.namedCurves包括以下:secp112r1,secp112r2,secp128r1,secp128r2,secp160k1,secp160r1,secp160r2,secp192k1,secp192r1,secp224k1,secp224r1,secp256k1,sect113r1,sect113r2,sect131r1,sect131r2,sect163k1,sect163r1,sect163r2,sect193r1,sect193r2 ,sect233k1,sect233r1,sect239k1,sect283k1,sect283r1,sect409k1,sect409r1,sect571k1,sect571r1,X9.62 c2tnb191v1,X9.62 c2tnb191v2,X9.62 c2t2b2v1,X9.62 c2t2b2v1,X9.62 .62 c2tnb359v1,X9.62 c2tnb431r1,X9.62 prime192v2,X9.62 prime192v3,X9.62 prime239v1,X9.62 prime239v2,X9.62 prime239v3,brainpoolP256r1,brainpoolP320r1,brainpoolP384r1,brainpoolP512r1
保持启用的曲线为:secp256r1,secp384r1,secp521r1,X25519,X448
10、Apache Santuario库已更新至版本2.1.4
Apache Santuario库已升级到版本2.1.4。结果,com.sun.org.apache.xml.internal.security.parser.pool-size引入了新的系统属性。
这个新的系统属性设置DocumentBuilder处理XML签名时使用的内部缓存的池大小。该函数等效org.apache.xml.security.parser.pool-size于Apache Santuario中使用的系统属性,并且具有相同的默认值20。
11、允许默认情况下调用可发现的javac插件
现在,如果未javac在从命令行传递到的选项或optionsAPI调用的参数中显式启动javac plugins,则默认情况下可以选择启动它。通过实现Plugin.isDefault()return 方法可以启用此行为true。
12、SAX ContentHandler处理XML声明的新方法
declaration已添加新方法SAX ContentHandler以接收XML声明的通知。通过实现此方法,应用程序可以完全按照输入文档中的声明接收版本,编码和独立属性的值。
一、新功能
1、改善证书链处理
jdk.tls.maxHandshakeMessageSize已添加新的系统属性,以设置TLS / DTLS握手中握手消息的最大允许大小。系统属性的默认值为32768(32 KB)。
jdk.tls.maxCertificateChainLength已添加新的系统属性,以设置TLS / DTLS握手中证书链的最大允许长度。系统属性的默认值为10。
二、其他注意事项
1、核心库/javax.naming
添加了属性以控制允许通过清除连接进行身份验证的LDAP身份验证机制。
jdk.jndi.ldap.mechsAllowedToSendCredentials已添加新的环境属性, 以控制允许哪些LDAP身份验证机制通过clearLDAP连接发送凭据-LDAP不安全的连接。一个encryptedLDAP连接是通过使用打开的连接ldaps方案,或者通过使用打开的连接ldap方案,然后升级到TLS与扩展操作一个STARTTLS。
该属性的值(默认情况下未设置)是逗号分隔的机制名称列表,允许通过clear连接进行身份验证。如果未为属性指定值,则将允许所有机制。如果指定的值为空列表,则不允许使用任何机制(none和除外anonymous)。此属性的默认值为'null'(即System.getProperty("jdk.jndi.ldap.mechsAllowedToSendCredentials")返回'null')。要明确允许所有机制通过clear连接进行身份验证,可以将属性值设置为"all"。如果连接从降级 encrypted为clear,则仅允许显式允许的机制。
该属性可以提供给LDAP上下文环境映射,也可以全局设置为系统属性。同时提供时,环境图优先。
注意:none和anonymous身份验证机制不受这些规则的约束,并且始终与属性值无关。
2、安全库/java.security
①添加了3个SSL公司根CA证书
以下根证书已添加到cacerts信任库中:
+ SSL Corporation
+ sslrootrsaca
DN: CN=SSL.com Root Certification Authority RSA, O=SSL Corporation, L=Houston, ST=Texas, C=US
+ sslrootevrsaca
DN: CN=SSL.com EV Root Certification Authority RSA R2, O=SSL Corporation, L=Houston, ST=Texas, C=US
+ sslrooteccca
DN: CN=SSL.com Root Certification Authority ECC, O=SSL Corporation, L=Houston, ST=Texas, C=US
②添加了Entrust Root证书颁发机构-G4证书
以下根证书已添加到cacerts信任库中:
+ Entrust
+ entrustrootcag4
DN: CN=Entrust Root Certification Authority - G4, OU="(c) 2015 Entrust, Inc. - for authorized use only",
OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
3、核心库/java.io:序列化
? 增强对代理类的支持
java.lang.reflect.Proxy可以通过设置系统属性来限制对象的反序列化jdk.serialProxyInterfaceLimit。限制是流中每个代理允许的最大接口数。将限制设置为零可以防止对任何代理(包括注释)进行反序列化,限制小于2可能会干扰RMI操作。
三、Bug修复
此版本还包含针对Oracle重要补丁更新中描述的安全漏洞的修复程序。
四、更为详细更新内容可以去官网查阅。
上文就是小编为您带来的JAVA JDK(JAVA SE开发工具包)了,更多精彩软件请多多关注软件爱好者。
比特币里面最重要的数据就是哈希值,它是支撑比特币的唯一核心技术,比特币能够安全的发展到现在都靠哈希值,但是也会有出现问题的时候,就比如哈希之间的碰撞,如果想要了解什么是比特币哈希碰撞,可以看看小编在下方介绍的相关内容。