java se development kit 24 是 Java 平台面向现代应用开发的一个版本,通常被简称为 JDK 24 或 Java 24。它延续了 Java 在企业级编程领域的一贯定位,目标在于帮助团队压缩开发周期、控制成本,并更快地交付新应用服务。作为 Java 21 之后的第三个非长期支持版本,JDK 24 把重点放在了对新技术的适配能力上,围绕性能、安全等方面对多项特性做了调整,同时将部分此前处于预览阶段的功能推进到了更成熟的阶段。

一、JDK-8341566(字符序列)法新读本 添加了静态工厂方法java.io.Reeader.of(CharSequence),以获取从CharSequence读取字符的Reader,String和StringBuilder是CharSequence的示例。在某些情况下,返回的Reader比使用java.io.StringReader更有效,因为后者需要转换为String并同步。 二、支持Unicode 16.0(JDK-8319993) 此版本将Unicode版本升级到16.0,其中包括Unicode字符数据库和Unicode标准: java.lang.Character类支持Unicode字符数据库,该数据库增加了5185个字符,总共154998个字符。新增内容包括七个新脚本
1、Garay 是一套源自西非的现代脚本系统,目前仍在使用。
2、Gurung Khema、Kirat Rai、Ol Onal和Sunuwar这四种文字,至今仍在印度东北部与尼泊尔一带被人们日常使用。
3、托德赫里是一种曾在阿尔巴尼亚使用过的历史文字。
4、Tulu Tigalari是印度西南部的一种历史性文字。
这个版本加入了多项实用调整:等待进程结束现在可以用Duration参数,避免单位换算出错;jar解压时能加--keep-old-files或-k防止文件被覆盖;还新增了VirtualThreadSchedulerMXBean,方便通过JMX查看虚拟线程调度器的并行度、线程数与排队数量并动态调整;jcmd也多了Thread.vthread_scheduler和Thread.vthread_pollers两个诊断命令。安全方面,java.security属性文件支持用include指令引入其他文件,RSASSA-PSS签名补充了标准哈希与MGF算法说明,SunPKCS11在本地库支持时会启用CKM_AES_CTS,TLS 1.3会话票证数量可通过jdk.tls.server.newSessionTicket配置,TLS密码套件也能用通配符禁用。jar新增--dir或-C指定解压目录,API文档多了外部规范摘要页,jpackage在Windows上兼容WiX v4和v5并自动转换自定义源,内置XML目录也收录了W3C的DTD和XSD,加载时无需联网。
1、直接获取
Oracle 发布了针对性能、稳定性以及安全方面的补丁更新。
2、Oracle Java SE 公共更新停止后,用户仍可获取多个历史版本,以便满足不同环境的兼容需求。
3、Oracle Java SE 8 为企业环境提供了管理、监视和部署方面的实用功能,方便团队统一维护Java运行环境。
4、提前拿到重要信息,在正式公开前就掌握关键内容。
5、采用按月付费的订阅方式,用户每月支付固定费用即可使用服务。
6、访问 Oracle Java SE 8 商业功能
遇到 Java SE 8 商业版的使用问题,可随时获得 27 种语言的技术支持,包括紧急补丁和关键业务场景的协助。
8、该服务为整个 Java 产品体系提供分级支持,涵盖第三方库与运行时环境。
9、附带 Java SE Subscription Ent
本内容随附 Java SE 订阅授权,并包含性能提升组件。
10、该工具内置了 Java Management Service,方便你直接用它来管理 Java 运行环境。
11、该授权随附 Oracle GraalVM,无需另行付费。
此电脑->右键->属性->高级系统设置->环境变量:
1、「用户变量」和「系统变量」分别新建2条变量
在用户变量和系统变量里各新增两条记录:一条把变量名设为 CLASSPATH,变量值填 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;;另一条变量名写 JAVA_HOME,变量值指向 JDK 的安装目录,比如 C:\Program Files\Java\jdk1.8.0_311,具体版本号按实际安装路径来。
2、「系统变量」双击->Path->编辑环境变量 -> 分别新建3条
在系统变量里双击 Path 并进入编辑环境变量,然后依次添加以下三条:%JAVA_HOME%\bin、C:\Program Files\Java\jdk24.0\bin 以及 C:\Program Files\Java\jre24.0。
3、# 检查JDK环境配置命令
在命令提示符里敲入 java -version 就能查看当前 JDK 环境是否配置妥当。
一、JEP 478: 密钥派生函数 API(预览)
密钥派生函数 API 是一种用于从初始密钥和其他数据派生额外密钥的加密算法。它的核心作用是为不同的加密目的(如加密、认证等)生成多个不同的密钥,避免密钥重复使用带来的安全隐患。 这在现代加密中是一个重要的里程碑,为后续新兴的量子计算环境打下了基础
通过该 API,开发者可以使用最新的密钥派生算法(如 HKDF 和未来的 Argon2):
二、JEP 483: 提前类加载和链接
在传统 JVM 中,应用在每次启动时需要动态加载和链接类。这种机制对启动时间敏感的应用(如微服务或无服务器函数)带来了显著的性能瓶颈。该特性通过缓存已加载和链接的类,显著减少了重复工作的开销,显著减少 Java 应用程序的启动时间。测试表明,对大型应用(如基于 Spring 的服务器应用),启动时间可减少 40% 以上。
这个优化是零侵入性的,对应用程序、库或框架的代码无需任何更改,启动也方式保持一致,仅需添加相关 JVM 参数(如 -XX:+ClassDataSharing)。
三、JEP 484: 类文件 API
类文件 API 在 JDK 22 进行了第一次预览(JEP 457),在 JDK 23 进行了第二次预览并进一步完善(JEP 466)。最终,该特性在 JDK 24 中顺利转正。
类文件 API 的目标是提供一套标准化的 API,用于解析、生成和转换 Java 类文件,取代过去对第三方库(如 ASM)在类文件处理上的依赖。
四、JEP 485: 流收集器
流收集器 Stream:gather(Gatherer) 是一个强大的新特性,它允许开发者定义自定义的中间操作,实现更复杂、更灵活的数据转换。Gatherer 接口是该特性的核心,它定义了如何从流中收集元素,维护中间状态,并在处理过程中生成结果。
与现有的 filter、map 或 distinct 等内置操作不同,Stream:gather 使得开发者能够实现那些难以用标准 Stream 操作完成的任务。例如,可以使用 Stream:gather 实现滑动窗口、自定义规则的去重、或者更复杂的状态转换和聚合。 这种灵活性极大地扩展了 Stream API 的应用范围,使开发者能够应对更复杂的数据处理场景。
五、JEP 486: 永久禁用安全管理器
JDK 24 不再允许启用 Security Manager,即使通过 java -Djava.security.manager命令也无法启用,这是逐步移除该功能的关键一步。虽然 Security Manager 曾经是 Java 中限制代码权限(如访问文件系统或网络、读取或写入敏感文件、执行系统命令)的重要工具,但由于复杂性高、使用率低且维护成本大,Java 社区决定最终移除它。
六、JEP 487: 作用域值 (第四次预览)
作用域值(Scoped Values)可以在线程内和线程间共享不可变的数据,优于线程局部变量,尤其是在使用大量虚拟线程时。
作用域值允许在大型程序中的组件之间安全有效地共享数据,而无需求助于方法参数。
七、JEP 491: 虚拟线程的同步而不固定平台线程
优化了虚拟线程与 synchronized 的工作机制。 虚拟线程在 synchronized 方法和代码块中阻塞时,通常能够释放其占用的操作系统线程(平台线程),避免了对平台线程的长时间占用,提升应用程序的并发能力。 这种机制避免了“固定 (Pinning)”——即虚拟线程长时间占用平台线程,阻止其服务于其他虚拟线程的情况。
现有的使用 synchronized 的 Java 代码无需修改即可受益于虚拟线程的扩展能力。 例如,一个 I/O 密集型的应用程序,如果使用传统的平台线程,可能会因为线程阻塞而导致并发能力下降。 而使用虚拟线程,即使在 synchronized 块中发生阻塞,也不会固定平台线程,允许平台线程继续服务于其他虚拟线程,提高整体的并发性能。
八、JEP 493:在没有 JMOD 文件的情况下链接运行时镜像
默认情况下,JDK 同时包含运行时镜像(运行时所需的模块)和 JMOD 文件。这个特性使得 jlink 工具无需使用 JDK 的 JMOD 文件就可以创建自定义运行时镜像,减少了 JDK 的安装体积(约 25%)。
Jlink 是随 Java 9 一起发布的新命令行工具。它允许开发人员为基于模块的 Java 应用程序创建自己的轻量级、定制的 JRE。
JMOD 文件是 Java 模块的描述文件,包含了模块的元数据和资源。
九、JEP 495: 简化的源文件和实例主方法(第四次预览)
这个特性主要简化了 main 方法的的声明。对于 Java 初学者来说,这个 main 方法的声明引入了太多的 Java 语法概念,不利于初学者快速上手。
十、JEP 497: 量子抗性数字签名算法 (ML-DSA)
JDK 24 引入了支持实施抗量子的基于模块晶格的数字签名算法 (Module-Lattice-Based Digital Signature Algorithm, ML-DSA),为抵御未来量子计算机可能带来的威胁做准备。
ML-DSA 是美国国家标准与技术研究院(NIST)在 FIPS 204 中标准化的量子抗性算法,用于数字签名和身份验证。
十一、JEP 498: 使用 sun.misc.Unsafe 内存访问方法时发出警告
JDK 23(JEP 471) 提议弃用 sun.misc.Unsafe 中的内存访问方法,这些方法将来的版本中会被移除。在 JDK 24 中,当首次调用 sun.misc.Unsafe 的任何内存访问方法时,运行时会发出警告。
十二、JEP 499: 结构化并发(第四次预览)
JDK 24 引入了结构化并发,一种多线程编程方法,目的是为了通过结构化并发 API 来简化多线程编程,并不是为了取代java.util.concurrent,目前处于孵化器阶段。
结构化并发将不同线程中运行的多个任务视为单个工作单元,简化错误处理、提高可靠性并增强可观察性。也就是说,结构化并发保留了单线程代码的可读性、可维护性和可观察性。
结构化并发的基本 API 是StructuredTaskScope,它支持将任务拆分为多个并发子任务,在它们自己的线程中执行,并且子任务必须在主任务继续之前完成。
(您的评论需要经过审核才能显示)
0条评论