Java SE Development
Kit提供Java开发环境,如果你需要使用Java开发新的应用程序就可以下载这款软件使用,软件提供了很多开发工具,提供了运行环境,提供了兼容库,提供API文档,提供jdk工具,提供JShell,提供Javadoc,提供核心库资源,功能还是非常多的,让用户可以在开发新的应用程序时获得更多帮助,无论是开发新的软件还是测试应用程序运行状态都是非常适合的,如果你需要JDK就可以下载Java
SE Development Kit21版本使用。
1. 语言特点
记录模式
使用记录模式增强 Java 编程语言以解构记录值。可以嵌套记录模式和类型模式,以实现功能强大、声明性和可组合形式的数据导航和处理。
开关模式匹配
通过表达式和语句的模式匹配来增强 Java 编程语言。扩展模式匹配允许针对多个模式测试表达式,每个模式都有一个特定的操作,以便可以简洁安全地表达复杂的面向数据的查询。
1.1 语言功能预览
字符串模板(预览版)
使用字符串模板增强 Java 编程语言。字符串模板通过将文字文本与嵌入式表达式和模板处理器耦合来补充 Java 现有的字符串文字和文本块,以产生专门的结果。这是一个预览语言功能和 API。
未命名模式和变量(预览版)
使用未命名的模式(与记录组件匹配而不说明组件的名称或类型)和未命名变量(可以初始化但不使用)来增强 Java 语言。两者都由下划线字符 表示。这是一项预览语言功能。_
未命名类和实例主方法(预览版)
改进 Java 语言,以便学生可以编写他们的第一个程序,而无需了解为大型程序设计的语言功能。学生远非使用单独的Java方言,而是可以为单类程序编写简化的声明,然后随着技能的增长无缝扩展他们的程序以使用更高级的功能。这是一项预览语言功能。
2. 库改进
虚拟线程
将虚拟线程引入 Java 平台。虚拟线程是轻量级线程,可显著减少编写、维护和观察高吞吐量并发应用程序的工作量。
排序集合
引入新接口来表示具有定义的遭遇顺序的集合。每个这样的集合都有一个明确定义的第一个元素、第二个元素,依此类推,直到最后一个元素。它还提供统一的 API,用于访问其第一个和最后一个元素,以及以相反的顺序处理其元素。
“生活只能倒着理解;但它必须向前生活。
可执行程序
(在bin/子目录中)Java运行时环境(JRE)的实现。JRE包括Java虚拟机(JVM™)、类库和其他支持执行用Java编程语言编写的程序的文件。该目录还包括一些工具和实用程序,它们将帮助您开发、执行、调试和记录用Java编程语言编写的程序。有关更多信息,请参阅JDK 21工具规范https://docs.oracle.com/en/java/javase/21/docs/specs/man/index.html
配置文件
(在conf/子目录中)包含用户可配置选项的文件。可以编辑此目录中的文件以更改JDK的访问权限、配置安全算法,并设置可能用于限制JDK加密强度的Java加密扩展策略文件。
C头文件
(在include/子目录中)C语言头文件,支持使用Java native Interface和Java Virtual Machine(JVM)Debugger Interface进行本机代码编程。
编译的Java模块
(在jmods/子目录中)jlink用于创建自定义运行时的已编译模块。
版权和许可证文件
(在legal/子目录中)每个模块的许可证和版权文件。包括作为.md(markdown)文件的第三方通知。
其他库
(在lib/子目录中)JDK所需的其他类库和支持文件。这些文件不用于外部使用。
1、将Java SE Development Kit直接安装到电脑,点击下一步
2、提示软件的安装位置设置,默认安装到C盘
3、提示安装过程,等等Java SE Development Kit安装结束吧
4、Java SE Development Kit成功部署到电脑,可以查看后续步骤
新功能
核心libs/java.net
TCP_KEEPxxxx扩展套接字选项现在在Windows平台上受支持(JDK-8308593)
java.net。ExtendedSocketOptions TCP_KEEPIDLE和TCP_KEPEINTERVAL在从Windows 10版本1709及以后的Windows平台上受支持。从Windows 10版本1703及更高版本开始支持TCP_KEEPCOUNT。
已知问题
热点/编译器
由于有限范围检查消除而导致的潜在性能回归(JDK-8314468(非公开))
当C1编译器是VM唯一可用的编译器时,它会应用循环预测来从循环体中删除数组访问范围检查。由于存在缺陷,此优化被禁用,可能导致性能回归。
这只会影响使用非默认命令行标志-XX:+NeverActAsServerClassMachine或-XX:TieredStopAtLevel=[1,2,3]运行的客户端虚拟机。
已修复的问题
热点/编译器
ZGC:重新引入对非默认ObjectAlignmentInBytes的支持(JDK-8315082)
JDK 21问题已经解决,当使用-XX:+UseZGC和非默认值-XX:ObjectAlignmentInBytes运行JVM时,该问题可能会导致JVM崩溃或错误执行,并且可以再次使用JVM选项的这种组合。
修复
PassFailJFrame指令的HTML格式
处理WideCharToMultiByte返回值
BasicStroke.createStrokedShape斜接限制在小型形状上失败
默认目标的ColorConvertOp.filter太慢
JPEG解码中的附加负值检查
将HarfBuzz更新为8.2.2
将Libpng更新至1.6.40
使用JFileChooser或COM库时,屏幕锁定后的TargetDataLine无效
将屏幕捕获功能添加到PassFailJFrame
复选框和单选按钮在高DPI环境下的Windows上存在渲染问题
libCreationTimeHelper.so在JDK 21中链接失败
来自虚拟线程的线程中断不必要地重置中断状态
使用字节顺序和地址大小扩展内部体系结构枚举
如果在JDK-8302163之后禁用了CompactStrings,RegionMatches1Tests将失败
在8315026之后调整os_getChildren的描述注释
改进IllegalaccessException消息以包括异常的原因
如果加载程序为null并且接口在类加载程序中不可见,则Proxy.newProxylinstance抛出NPE
流:handleReset锁两次
(bf)DirectByteBuffer中的并发问题。经销商
(dc)DatagramChannel的套接字适配器在接收阻塞时不会释放承载线程
(fs)为Linux添加对BasicFileAttributes.creationTime()的支持
改进sun.nio.ch.Net本机方法抛出的异常消息(win)
JDK-8246677在SynchronousQueue中导致16x性能回归
签名jar触发Logger finder递归和StackOverflowError
通过关于allow选项的信息增强agentlib:jdwp帮助输出
C1:ShortLoopOptimizer可能会在指令输入之前提升指令
CodeBlob的更好诊断标头
LibraryCallKit中的控件不正确:inline_anative_notify_jvmti_funcs
assert(强制转换!=nullptr)失败:必须添加了一个强制转换来固定节点
将快速锁定实现从.ad文件中移出
[BACKUT]8308682:增强AES性能
[REDO]增强AES性能
VectorMaskGen在x86_64上破坏rflags
C2编译失败,出现“Exceeded _node_regs array”
自JDK 17以来,C2编译时间大幅增加(高达约30倍)
C2 SuperWord:错误的结果,如果不可比较,则不应在存储前移动负载
C2:“控制输入必须主导电流控制”断言失败
C2:在断言后添加救助在build_loop_late中检测到坏图
C2:大字节阵列克隆触发linux-x86上的“失败:格式错误的控制流”断言失败
C2编译失败,出现“错误的AD文件”
C2编译仍然失败,原因是“AD文件不正确”
编程工具 /
下载编程工具 /
下载编程工具 /
下载编程工具 /
下载编程工具 /
下载编程工具 /
下载编程工具 /
下载编程工具 /
下载编程工具 /
下载编程工具 /
下载
网友评论