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

JAVA 开发环境 Java SE Development Kit (JDK) 25.0 x64

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

软件标签:JDK 25 
JDK 25全新发布,为用户提供提供全新的Java平台标准版开发工具包,让有需要的用户和程序员轻松构建、运行、调试以及记录您的java代码,包括用于开发、测试和监控用 Java 编程语言编写并在 Java 平台上运行的程序的工具,是java开发人员非常重要的基础工具,不管是水平如何都能为您的实现java应用程序带来更多的帮助和支持。

新功能
新功能
本节介绍 Java SE 25 和 JDK 25 中的一些增强功能。在某些情况下,描述提供了指向有关问题或更改的其他详细信息的链接。此处描述的 API 随 Oracle JDK 一起提供。它包括 Java SE 25 平台的完整实现和其他 Java API,以支持开发、调试和监视 Java 应用程序。有关 Java SE 25 和 JDK 25 中重要增强功能和新功能的另一个信息来源是 Java SE 25 (JSR 400) 平台规范,它记录了 Java SE 24 和 Java SE 25 之间对规范所做的更改。本文档包括对这些新功能和增强功能的描述,这些新功能和增强功能也是对规范的更改。这些描述还确定了迁移到 JDK 25 时可能遇到的潜在兼容性问题。
 
 
核心库/java.lang
➜ CharSequence 和 CharBuffer 中新增的 getChars(int, int, char[], int) 方法 (JDK-8343110)
一个新方法 ,已添加到 中,将字符从 a 的某个区域批量读取到 ., , 并实现 .当需要从序列中批量读取时,对 a 进行作的代码应该不再需要特殊情况和强制转换为。新方法可能比循环序列的字符更有效。getChars(int, int, char[], int)java.lang.CharSequencejava.nio.CharBufferCharSequencechar[]StringStringBuilderCharBufferCharSequenceCharSequenceString
 
 
核心库/java.lang
➜ 添加标准系统属性 stdin.encoding (JDK-8350703))
添加了新的系统属性 。此属性包含建议的字符集的名称,用于从 中读取字符数据,例如,在使用 或 时。默认情况下,该属性是根据查询作系统和用户环境以特定于系统的方式设置的。请注意,其值可能与属性的值、默认字符集和属性的值不同。通过在命令行上提供参数,可以将 的值覆盖为 UTF-8。stdin.encodingSystem.inInputStreamReaderScannerfile.encodingnative.encodingstdin.encoding-Dstdin.encoding=UTF-8
 
有关更多信息,请参阅标准输出、标准输入和标准错误流的默认字符集。
 
 
核心库/java.net
➜ BodyHandlers 和 BodySubscribers 上的新方法,用于限制 HttpClient 接受的响应正文字节数 (JDK-8328919)
API 中添加了两个新方法 和 。这些方法扩展了现有的 或 ,能够限制应用程序愿意接受的响应正文字节数以响应 HTTP 请求。在读取响应正文时达到限制后,将引发 an 并报告给下游订阅者。订阅将被取消。任何进一步的响应正文字节都将被丢弃。这使得应用程序可以控制它想要从服务器接受的最大字节数。java.net.http.HttpResponse.BodyHandlers.limiting(BodyHandler downstreamHandler, long capacity)java.net.http.HttpResponse.BodySubsribers.limiting(BodySubscriber downstreamSubscriber, long capacity)HttpClientBodyHandlerBodySubscriberIOException
 
 
核心库/java.net
➜ java.net.http.HttpResponse 中用于识别连接的新 connectionLabel 方法 (JDK-8350279)
已将新方法添加到 。此新方法返回一个不透明的连接标签,调用者可以利用该标签将响应与其所携带的连接相关联。这对于确定两个请求是在同一连接上还是在不同的连接上携带很有用。connectionLabeljava.net.http.HttpResponse
 
 
核心库/java.nio
➜ 用于将 ZIP 文件系统构造为只读的新属性 (JDK-8350880)
ZIP 文件系统提供程序已更新,以允许将 ZIP 文件系统创建为只读或读写文件系统。创建 ZIP 文件系统时,可以将属性名称“”与值“”或“”一起使用,以指定所需的模式。如果未提供该属性,则如果可能,将文件系统创建为读写文件系统。accessModereadOnlyreadWrite
 
以下示例创建只读文件系统:
 
FileSystem zipfs = FileSystems.newFileSystem(pathToZipFile, Map.of("accessMode","readOnly"));
 
有关此属性和 ZIP 文件系统提供程序支持的其他属性的更多信息,请参阅模块说明。jdk.zipfs
 
 
core-libs/java.util.concurrent
➜ ForkJoinPool 和 CompletableFuture 的更新 (JDK-8319447)
java.util.concurrent.ForkJoinPool在此版本中进行了更新,以实现 .此 API 更新有助于在网络和其他应用程序中执行延迟任务处理,在这些应用程序中,延迟任务用于超时处理,并且大多数超时都被取消。ScheduledExecutorService
 
除了 定义的方法之外,现在还定义了一个新方法,用于提交在任务完成之前超时到期时被取消(或执行的其他作)的任务。scheduleScheduledExecutorServiceForkJoinPoolsubmitWithTimeout
 
作为更新的一部分,并且会发生更改,以便使用公共池执行所有没有显式的异步方法。这与以前的版本不同,在以前的版本中,当公共池配置为小于 2 的并行度时,会为每个异步任务创建一个新线程。CompletableFutureSubmissionPublisherExecutorForkJoinPoolForkJoinPool
 
 
核心库/java.util.jar
➜ 增强了 java.util.zip.Inflater 和 java.util.zip.Deflater 以实现 AutoCloseable (JDK-8225763)
java.util.zip.Inflater现在实现并可以与 try-with-resources 语句一起使用。应用程序以前可以调用该方法来释放 / 实例持有的资源。现在,可以调用 或 方法来执行相同的作。java.util.zip.DeflaterAutoCloseableend()InflaterDeflaterend()close()
 
 
核心-svc
➜ HotSpotDiagnosticMXBean.dumpThreads 和 jcmd 生成的线程转储Thread.dump_to_file更新为包含锁定信息 (JDK-8356870)
API 生成的线程转储和诊断命令 现在包括锁信息。com.sun.management.HotSpotDiagnosticMXBean.dumpThreadsjcmd <pid> Thread.dump_to_file
 
API 也已更新,以链接到描述 JSON 格式线程转储的 JSON 架构。JSON 格式线程转储旨在由诊断工具读取和处理。HotSpotDiagnosticMXBean.dumpThreads
 
与 生成的传统线程转储不同,与 生成的线程转储不会打印有关此版本中死锁的信息。jstackjcmd <pid> Thread.printHotSpotDiagnosticMXBean.dumpThreadsjcmd <pid> Thread.dump_to_file
 
 
热点/GC
➜ G1 通过将区域分组到共享卡集中来减少记住的集开销 (JDK-8343782)
G1 垃圾回收器允许多个区域在混合 GC 期间可能一起收集时共享单个内部结构 (G1CardSet),从而进一步减少记住的集合内存开销和暂停时间。
 
以前,每个区域都维护自己的 G1CardSet,这导致内存开销高,并且对最终将作为一个组收集的区域之间的引用进行冗余跟踪。在新设计中,预计一起疏散的区域在备注阶段之后被分组,并分配一个共享的 G1CardSet,无需单独跟踪它们之间的参考。
 
这提高了内存效率并减少了集合暂停期间的合并时间。
 
 
热点/JFR
➜ 上下文信息的新 JFR 注释 (JDK-8356698)
引入了一个新的注释,用于标记自定义 JFR 事件中的字段,这些字段包含与同一线程中发生的其他事件相关的上下文信息。例如,可以对用户定义的 HTTP 请求事件中的字段进行注释,以将其 URL 和跟踪 ID 与其执行期间发生的事件相关联,例如由于争用的记录器引起的事件。jdk.jfr.Contextual@Contextualjdk.JavaMonitorEnter
 
工具现在可以将更高级别的信息(例如跨度和跟踪 ID)与较低级别的事件配对。JDK 中包含的该工具的命令将此上下文信息与 JVM 和 JDK 事件一起显示,例如,在跟踪跨度或 HTTP 请求事件期间发生的锁争用、I/O 或异常事件中。printjfr
 
 
热点/运行时
➜ UseCompactObjectHeaders 是一个产品选项 (JDK-8350457)
该标志现在是一个产品选项。这允许用户在不使用标志的情况下启用紧凑对象标头。紧凑对象标头是 JDK 24 在 JEP 450 下引入的一项功能。启用此功能可减少应用程序的 Java 堆占用空间,并可能提供性能优势。该功能在此版本中默认保持禁用状态,但在将来的版本中可能会成为默认功能。-XX:+/-UseCompactObjectHeaders-XX:+UnlockExperimentalVMOptions
 
为了支持使用紧凑对象标头,提供了两个用于调用 JDK 映像的附加 CDS 存档,以便在打开时允许等效的启动性能。classes_coh.jsaclasses_nocoops_coh.jsaUseCompactObjectHeaders
 
 
security-libs/java.security
➜ 默认为 java.security.debug 打开时间戳和线程详细信息 (JDK-8350689)
系统属性的调试输出现在包括线程 ID、调用方信息和时间戳信息。java.security.debug
 
使用 java.security.debug 选项生成的每个调试输出语句现在格式化为:
 
componentValue[threadId|threadName|sourceCodeLocation|timestamp]: <debug statement>
 
哪里:
 
componentValue是正在记录的安全组件值。
threadId是线程 ID 的十六进制值。
threadName是执行日志语句的线程的名称。
sourceCodeLocation是进行此日志调用的源文件和行号,格式为“filename:lineNumber”。
timestamp是格式为“yyyy-MM-dd kk:mm:ss.SSS”的日期和时间。
<debug语句>对应于安全组件的调试输出。
JDK 23 中引入的 and 选项将不再产生影响,并且会被忽略。+thread+timestamp
 
有关这些旧选项的更多信息,请参阅 JDK 23 发行说明。有关其他信息,请参阅调试语句输出格式。
 
 
security-libs/java.security
➜ SHAKE128-256 和 SHAKE256-512 作为 MessageDigest 算法 (JDK-8354305)
两种新算法 SHAKE128-256 和 SHAKE256-512 已添加到 SUN 提供程序中。这些是 NIST FIPS 202 中定义的 SHAKE128 和 SHAKE256 可扩展输出函数 (XOF) 的固定长度版本。MessageDigest
 
有关详细信息,请参阅 SUN 提供程序。
 
 
 
安全库/javax.crypto:pkcs11
➜ SunPKCS11 中支持 HKDF (JDK-8328119)
SunPKCS11 安全提供程序现在支持新的密钥派生函数 API 的以下算法:HKDF-SHA256、HKDF-SHA384 和 HKDF-SHA512。有关更多详细信息,请参阅 JDK-8344464。
 
 
安全库/javax.net.ssl
➜ 根据 TLS 范围禁用签名方案的机制 (JDK-8349583)
配置文件中的属性现在支持 TLS 协议特定的使用约束,如下所示:jdk.tls.disabledAlgorithmsjava.security
 
UsageConstraint:
 
    usage UsageType { UsageType }
 
UsageType:
    HandshakeSignature | CertificateSignature
HandshakeSignature限制在 TLS 握手签名中使用该算法。 限制在证书签名中使用该算法。具有此约束的算法不能包括属性中定义的其他用法类型。用法类型跟在关键字后面,并且可以使用空格分隔符指定多个用法类型。CertificateSignaturejdk.certpath.disabledAlgorithms
 
 
安全库/javax.net.ssl
➜ 向 JSSE 和 SunJSSE 提供程序添加对 TLS 键控材料导出器的支持 (JDK-8341346)
此增强功能增加了对 TLS(传输层安全性)密钥材料导出器的支持,该导出器允许应用程序从连接的协商 TLS 密钥生成其他应用程序级密钥材料。
 
此更改支持多个其他协议,包括在 IANA TLS 参数 - 导出器标签文档中注册的标签。
 
TLSv1-TLSv1.2 的 RFC 5705 和 TLSv1.3 的 RFC 8446 中介绍了此功能。可以通过类中的两个新 API 访问该功能:javax.net.ssl.ExtendedSSLSession
 
public SecretKey exportKeyingMaterialKey(String keyAlg,
 
        String label, byte[] context, int length) throws SSLKeyException
public byte[] exportKeyingMaterialData(
        String label, byte[] context, int length) throws SSLKeyException
 
安全图书馆/javax.xml.crypto
➜ 将 Java 的 XML 安全性更新到 3.0.5 (JDK-8344137)
XML 签名实现已更新至 Santuario 3.0.5。添加了对四种基于 SHA-3 的新 ECDSA 算法的支持:、、 和 。SignatureMethodSignatureMethod.ECDSA_SHA3_224SignatureMethod.ECDSA_SHA3_256SignatureMethod.ECDSA_SHA3_384SignatureMethod.ECDSA_SHA3_512
 
 
工具/罐
➜ 增强的 jar 文件验证 (JDK-8345431)
该命令已得到增强,可识别并生成以下警告消息:jar --validate
 
重复的条目名称
条目名称:
包含驱动器或设备号,
包含前导斜杠
包含反斜杠 ''
条目名称或任何路径元素是“.”或“..”
LOC和CEN报头之间的条目顺序不一致

闪电小编说明:

Java平台标准版开发工具包(JDK),JDK是一个开发环境,用于使用Java编程语言构建应用程序和组件。为用户构建新的应用带来更多的帮助,提供您需要的各种工具和环境。
软件无法下载?不知道解压密码?微信关注订阅号"闪电下载"获取

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

  • 下载地址

捐助vip:软件下载联系:1739083603@qq.com

  • 猜你喜欢
  • 用户评论