Java SE Development Kit (JDK)是全新版本的Java SE开发工具包!提供进行JAVA应用的构建、测试以及部署操作所需要的一切,为开发人员提供必备的工具!完整的工作环境,提高的性能,丰富的工具和能力,加快开发、部署到生产环境的过程,减轻用户压力,扩展能力。综合解决方案,最新版本!
23新功能
本节介绍Java SE 23和JDK 23中的一些增强功能。在某些情况下,描述提供了有关问题或更改的其他详细信息的链接。这里描述的API是随Oracle JDK提供的。它包括Java SE 23平台的完整实现和其他Java API,以支持开发、调试和监控Java应用程序。关于Java SE 23和JDK 23中重要增强功能和新特性的另一个信息来源是Java SE 23(JSR 398)平台规范,该规范记录了Java SE 22和Java SE 23之间对规范所做的更改。本文档包括对这些新功能和增强功能的描述,这些功能和增强也是对规范的更改。这些描述还确定了迁移到JDK 23时可能遇到的潜在兼容性问题。
核心libs/java.io
➜ 具有显式区域设置的控制台方法(JDK-8330276)
以下方法已添加到接受java.util.Console的java.io.Console类中。区域设置参数:
公共控制台格式(区域设置、字符串格式、对象…参数)
公共控制台printf(区域设置、字符串格式、对象…参数)
公共字符串readLine(区域设置、字符串格式、对象…参数)
public char[]readPassword(区域设置、字符串格式、对象…参数)
用户现在可以输出字符串或显示用指定区域设置格式化的提示文本,该区域设置可能独立于默认区域设置。例如,代码段System.console().printf(Locale.FRANCE,“%1$tY-%1$tB-%1$te%1$tA”,new Date())将显示:
2024年5月16日
核心libs/java.io:序列化
➜ 添加jdk。序列化错误声明JFR事件(JDK-8275338)
一个新的jdk。序列化错误声明JFR事件类型已添加到平台中。当序列化相关字段和方法的某些方面声明不正确时,会在运行时触发此类事件。通过启用jdk。序列化错误声明,JFR将在JVM中加载可序列化类时,为每个错误声明的方面触发一个事件。
例如,如果序列化类上的writeObject()方法具有正确的签名,但无意中被声明为公共,则序列化机制不会选择它。这可能会让类的开发人员感到惊讶。为了帮助诊断这些问题,jdk。序列化应启用错误声明事件。
标准default.jfc配置文件不启用这些事件,而标准profile.jfc概要文件则启用。
核心libs/java.nio
➜ 添加系统属性以设置溢出前WatchService事件的最大数量(JDK-8330077)
java.nio.file。WatchService实现在丢弃事件并将OVERFLOW事件排队之前,最多缓冲最大数量的事件。一个新的系统属性jdk.nio.file。添加了WatchService.maxEventsPerPoll,允许某人指定在发出OVERFLOW事件之前可以排队的挂起事件的最大数量。此属性的值必须是正整数。
核心libs/java.time
➜ 支持持续时间直到另一个瞬间(JDK-8331202)
java.time中添加了一个新方法。Instant类获取指定Instant之前的持续时间。新方法Instant.tuntil(Instant)产生的持续时间与duration.ebetween(Temporal,Temporal)相同,但用户更容易发现。此外,这种新方法比Instant.util(Temporal,TemporalUnit)方法更方便,因为新方法直接返回Duration,而无需进行单位转换。
热点/gc
➜ 新的并行GC全GC算法(JDK-8329203)
并行GC现在使用与串行GC和G1 GC全GC相同的全GC算法。
之前的算法包括三次遍历Java堆中的每个活动对象:
标记活动对象
计算每个活动对象的新位置
将对象移动到新位置并更新每个对象的字段
步骤2中计算的对象位置使用堆外内存存储,以避免第四次遍历Java堆中的活动对象。问题是,对于某些有问题的工作负载,该方案不能很好地扩展。此外,此数据结构在堆外内存中使用了1.5%的Java堆。
新算法对有问题的工作负载的性能明显更好,不需要额外的内存,减少了所有工作负载的占用空间。
安全libs/java.security
➜ java.security.debug系统属性的线程和时间戳选项(JDK-8051959)
java.security.debug系统属性现在接受参数,这些参数将线程ID、线程名称、调用者信息和时间戳信息添加到所有组件或特定组件的调试语句中。
+时间戳可以附加到调试选项上,以打印该调试选项的时间戳+线程可以附加到调试选项中,以打印该调试选项的线程和调用者信息。
示例:-Djava.security.debug=all+timestamp+thread将时间戳和线程信息添加到生成的每个调试语句中。
-Djava.security.debug=properties+timestamp将时间戳信息添加到为properties组件生成的每个调试语句中。
您还可以指定-Djava.security.debug=help,它将显示支持的组件和参数的完整列表。
有关更多信息,请参阅打印线程和时间戳信息。
安全libs/java.security
➜ 支持KeychainStore ROOT密钥库(JDK-8320362)
苹果提供商的“KeychainStore”现在支持两种类型的密钥库:
“KeychainStore”,其中包含用户当前密钥链的私钥和证书
“KeychainStore ROOT”,其中包含来自系统根证书密钥链的证书
有关更多信息,请参阅Apple提供商。
安全libs/org.ietf.jgss:krb5
➜ 在ccache和keytab Kerberos条目查找中启用区分大小写的检查(JDK-8331975)
在查找Kerberos主体的密钥表或凭据缓存(ccache)条目时,会以不区分大小写的方式将主体名称与条目名称进行比较。然而,许多Kerberos实现将主体名称视为区分大小写的。因此,如果两个主体的名称仅因大小写而异,则有可能选择不正确的keytab或ccache条目。
引入了一个名为jdk.security.krb5.name.case.sensitive的新安全属性来控制名称比较。如果此属性设置为“true”,则在keytab和ccache条目查找期间对主体名称的比较将区分大小写。默认值为“false”,以确保向后兼容性。
此外,如果指定了同名的系统属性,它将覆盖java.security文件中定义的安全属性值。
请参阅Kerberos系统属性、安全属性和环境变量。
工具/javac
➜ 新的javac-Xlint子选项,用于报告“摇摇欲坠的文档评论”(JDK-8303689)
javac-Xlint选项提供了一个新的子选项,用于检测与源代码中文档注释的放置相关的问题。
新子选项的名称是悬挂的文档注释。子选项可以显式指定(例如,-Xlint:悬挂的文档注释)或隐式指定,作为所有子选项之一(例如,-Xlint或-Xlint:all)。启用子选项后,javac将报告声明附近的任何意外或错位的文档注释,例如在以下情况下:
在任何包或导入声明之前,对顶级类的文档注释;
在声明的第一个标记之后出现的声明的文档注释,例如在声明的任何注释或其他修饰符之后;或
声明前的任何其他文档注释,否则javac会忽略这些注释。
与-Xlint的任何子选项一样,可以在本地抑制警告,在封闭声明上使用@SuppressWarnings注释,指定要抑制的警告的子选项的名称。
注意:当启用子选项时,如果有任何以/**开头的装饰性注释,javac可能会报告一些“误报”,因此可能类似于文档注释。例如,评论在评论文本的其余部分前后使用一行星号,以帮助使评论“脱颖而出”。在这种情况下,补救措施是更改注释,使其不以/**开头——也许至少将第二个星号更改为其他字符。
tools/javadoc(工具)
➜ 改进API文件中的结构导航(JDK-8320458)
标准doclet生成的API文档现在具有增强的导航功能,包括包含当前页面目录的侧栏,以及页头中当前API元素的breadcrumb导航。
在类和接口的文档中,可以使用侧边栏顶部的文本输入字段过滤目录中的条目。侧边栏底部的按钮允许折叠或展开当前会话的目录。
tools/javadoc(工具)
➜ 支持javadoc中的JavaScript模块(JDK-8317621)
javadoc-add-script选项现在除了支持传统的脚本文件外,还支持JavaScript模块。通过检查作为选项参数传递的文件的扩展名或内容,可以自动检测模块。
工具/javap
➜ 验证javap中的类(JDK-8182774)
新的javap选项-verify会打印额外的类验证信息。
xml/jaxp
➜ 创建严格JAXP配置文件模板(JDK-8330542)
未来的JDK版本将继续朝着默认情况下使XML处理更具限制性的方向发展。为了帮助开发人员为这些更改做好准备,此版本包括一个JAXP配置文件模板$JAVA_HOME/conf/JAXP-strict.properties,指定了更严格的XML处理设置。
以下步骤可用于使用JAXP配置文件模板测试应用程序:
将模板文件复制到$JAVA_HOME/conf之外的位置:
cp$JAVA_HOME/conf/jaxp-strict.properties模板/<my_path>/jaxp-strict.properties
运行应用程序,将系统属性java.xml.config.file指定到复制JAXP配置文件模板的路径,以覆盖默认的JAXP配置:
java-Djava.xml.config.file=/<my_path>/jaxp-strict.properties myApp
闪电小编说明:
JDK 23和Java SE 23的进行了重要更改、增强,Java平台标准版开发工具包(JDK)。JDK是一个使用Java编程语言构建应用程序和组件的开发环境。JDK包括用于开发、测试和监视用Java编程语言编写并在Java平台上运行的程序的工具。软件无法下载?不知道解压密码?微信关注订阅号"闪电下载"获取
本帖长期更新最新版 请收藏下载!版权声明:本站提的序列号、注册码、注册机、破解补丁等均来自互联网,仅供学习交流之用,请在下载后24小时内删除。