首 页
手机版

java se development kit 23官方版 v23.0.1.0

JAVA开发环境

  • 软件大小:203.58M
  • 软件语言:简体中文
  • 软件类型:国外软件
  • 软件授权:免费软件
  • 更新时间:2025/01/19
  • 软件类别:编程其它
  • 应用平台:Windows11,Windows10,Windows8,Windows7
网友评分:6.6分
网友评论 下载地址 收藏该页
本地下载

java se development kit 23由Oracle公司最新推出的Java语言的软件开发工具包套件,简称jdk23,是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar),主要用于移动设备、嵌入式设备上的java应用程序。用户想要在电脑上运行JAVA程序,需要先安装JDK环境!jdk23是Java SE平台的最新版本,本发行版包含诸如局部变量类型推断,并行完整GC,应用程序类数据共享等改进。本站为用户提供Java SE 10最新版下载,强烈建议所有Java SE用户升级到此版本。

java se development kit 23官方版

jdk23安装配置教程

1、下载软件压缩包文件,点击“jdk-23_windows-x64_bin.exe”,根据提示完成安装即可。

2、程序会自动安装JRE程序,选择目录即可

3、直到jdk23安装完毕,点击“关闭”按钮即可,如下图所示:

4、安装完JDK后配置环境变量,计算机→属性→高级系统设置→高级→环境变量

5、系统变量→新建 JAVA_HOME 变量

变量值填写jdk的安装目录(本人是 C:\Program Files\Java\jdk-23)

6、系统变量→寻找 Path 变量→编辑

在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)

7、系统变量→新建 CLASSPATH 变量

变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)系统变量配置完毕

8、检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)若如图所示 显示版本信息 则说明安装和配置成功。

JDK 23中的新增功能:

1、核心库/ java.util中

Optional.orElseThrow()方法

一个新的方法orElseThrow已被添加到Optional课堂上。它是现有get方法的同义词,并且是现在的首选方法。

2、核心库/ java.util中:收藏

用于创建不可修改集合的API

已经添加了几个新的API,以促进创建不可修改的集合。该List.copyOf,Set.copyOf和Map.copyOf方法从现有实例中创建新的集合实例。新的方法toUnmodifiableList,toUnmodifiableSet以及toUnmodifiableMap已被添加到Collectors在流包类。这些允许流的元素被收集到一个不可修改的集合中。

3、芯-SVC / java.lang.management

系统属性以禁用JRE上次使用情况跟踪

引入了新的系统属性jdk.disableLastUsageTracking来禁用正在运行的VM的JRE上次使用情况跟踪。该属性可以在命令行通过使用被设置 -Djdk.disableLastUsageTracking=true或-Djdk.disableLastUsageTracking。使用此系统属性集,无论设置的com.oracle.usagetracker.track.last.usage属性值如何,JRE上次使用情况跟踪都将被禁用usagetracker.properties。

4、芯-SVC / javax.management

为开箱即用的JMX代理散列密码

jmxremote.passwordJMX代理现在正在使用SHA3-512散列覆盖文件中的明文密码。该角色的每一行都遵循以下格式:

role_name W hashedPassword

Where:

role_name是任何不包含空格或制表符的字符串。

W =空格或制表符

散列密码的格式如下:

hashedPassword = base64_encoded_64_byte_salt W base64_encoded_hash W hash_algorithm

Where:

base64_encoded_64_byte_salt = 64字节随机盐

base64_encoded_hash = Hash_algorithm(密码+盐)

W =空格或制表符

hash_algorithm =使用格式指定的算法字符串。这是个可选的选项。如果未指定,则认为SHA3-512是算法字符串。

如果密码是明确的,如果满足以下所有条件,它们将被哈希覆盖:

com.sun.management.jmxremote.password.toHashes属性在management.properties文件中设置为true 。

密码文件是可写的。

如果配置了安全管理器,则系统安全策略允许写入密码文件。

为了更改角色的密码,请将散列的密码条目替换为新的明文密码或新的散列密码。如果新密码处于清除状态,则在进行新的登录尝试时将用其哈希代替。

给定角色在此文件中至少应有一个条目。如果某个角色没有条目,则无权访问。如果为同一个角色名称找到多个条目,则使用最后一个条目。

用户生成的哈希密码文件也可以用来代替明文密码文件。如果由用户生成,则散列密码必须遵循上面指定的格式。

该文件必须只能由所有者访问,否则程序将退出并出现错误。

为了防止无意中编辑生产环境中的密码文件,建议部署只读哈希密码文件。可以通过运行JMX代理预先生成清除密码的散列条目。

建议在代理运行时不要编辑密码文件。如果客户端连接在外部修改文件的同时触发密码文件散列,则编辑可能会丢失。文件的完整性是有保证的,但是在代理读取文件和写回文件之间的短时间内对文件进行的任何外部编辑可能会丢失。

5、热点/ GC

G1的JEP 307并行完整GC

通过完全GC并行改善G1最坏情况下的延迟。G1垃圾收集器旨在避免完整收集,但是当并发收集无法快速回收内存时,会发生回退完整GC。完整的GC for G1的旧版本使用单线程标记扫描 - 紧凑算法。使用JEP 307,完整的GC已经并行化,现在使用与年轻和混合集合相同数量的并行工作线程。

6、安全库/ java.security

JEP 319根证书

在JDK中提供一组默认的根证书颁发机构(CA)证书。

cacerts用于Linux x64的OpenJDK 9二进制文件的密钥库已由JEP 319:根证书 [1] 填充,并带有由Oracle的Java SE根CA程序的CA颁发的一组根证书。这解决了cacerts用于Linux x64的OpenJDK 9二进制文件中的空密钥库问题。cacerts由于未安装受信任的根证书颁发机构,空的密钥库阻止了建立TLS连接。作为OpenJDK 9二进制文件的解决方法,用户必须将javax.net.ssl.trustStore系统属性设置为使用不同的密钥库。

7、安全库/ javax.net.ssl中

TLS会话哈希和扩展主秘密扩展支持

已为JDK JSSE提供程序中的TLS会话散列和扩展主密钥扩展(RFC 7627)添加了支持。请注意,一般来说,如果未启用端点标识并且以前的握手是会话恢复缩略初始握手,则服务器证书更改会受到限制,除非两个证书所代表的身份可以视为相同。但是,如果启用或协商扩展,则服务器证书更改限制不是必需的,因此将被相应地丢弃。如果出现兼容性问题,应用程序可能会通过将系统属性设置为JDK jdk.tls.useExtendedMasterSecret来禁用此扩展的协商false。通过将系统属性设置jdk.tls.allowLegacyResumption为false,当会话散列和扩展主密钥扩展未协商时,应用程序可拒绝简短握手。通过将系统属性设置jdk.tls.allowLegacyMasterSecret为false,应用程序可拒绝不支持会话散列和扩展主密钥扩展的连接。

8、工具/ javac的

生成增强for循环的字节码生成

字节码生成已针对增强for循环进行了改进,从而改进了它们的翻译方法。例如:

Listdata = new ArrayList<>(); for (String b : data);

以下是增强后生成的代码:

{ /*synthetic*/ Iterator i$ = data.iterator(); for (; i$.hasNext(); ) { String b = (String)i$.next(); } b = null; i$ = null; }

在for循环之外声明迭代器变量允许在不再使用它时立即为其分配空值。这使GC可以访问它,然后可以摆脱未使用的内存。当增强for循环中的表达式是一个数组时,情况类似。

9、工具/ javadoc的(工具)

javadoc支持多种样式表

一个新的javadoc命令行选项--add-stylesheet已被添加到javadoc工具中。新--add-stylesheet选项支持在生成的文档中使用多个样式表。现有的-stylesheetfile选项现在有一个别名,--main-stylesheet以帮助区分主样式表和其他样式表。

10、工具/ javadoc的(工具)

重写不改变规范的方法

新的选项--overridden-methods=值已被添加到javadoc工具中。许多类在不改变规范的情况下重写继承的方法。该--overridden-methods=值选项可用于组这些方法与其它的继承方法,而不是用在类中声明的其它方法记录他们的细节。

11、工具/ javadoc的(工具)

API说明摘要的注释标记

添加了一个新的内联标签,{@summary …}以明确指定用作API描述摘要的文本。默认情况下,从第一句推断API描述的摘要。这是通过使用一个简单的算法或java.text.BreakIterator。然而,这种启发式方法并不总是正确的,可能会导致对第一句结尾的错误判断。新的标签可以显式设置API摘要文本而不是推断。

更新日志

v23.0.1.0版本

一、已解决的重要问题
1、安装
- JDK RPM升级留下孤儿替代品条目(JDK-8336107(非公开))
- 修复了RPM升级期间“java”和“javac”组中的条目未得到正确管理的问题。
- 从安装在共享目录(/usr/lib/jvm/jdk)中的旧Java RPM升级-${FEATURE}-oracle-${ARCH})安装到特定版本目录(/usr/lib/jvm/jdk)中的Java RPM-${VERSION}-oracle-${ARCH}),导致“Java”和“javac”组中的旧Java条目不会被删除。
- 在卸载新Java之前,问题不会出现。当卸载它并安装较低版本的Java时,运行Java命令(如Java或keytool)而不指定完整路径将导致“找不到命令”错误。例如,安装21.0.3;升级到21.0.4;卸载21.0.4;安装任何17、11或8版本的Java更新;从命令行运行“java”。命令将失败,出现“找不到命令”错误。
- 手动删除“Java”和“javac”组中的孤立Java条目以解决此问题。
二、其他注意事项
- 核心libs/java.net
- JDK HTTP实现中的新默认限制(JDK-8328286(非公开))
- JDK中的HTTP中添加了新的默认限制。
- JDK内置的HTTP、HttpURLConnection和新HttpClient的传统URL协议处理程序的实现,在java.net.HTTP模块中,现在对它们将从远程方接受的最大响应头大小有一个默认限制。默认情况下,限制设置为384kB(393216字节),计算方法为所有标头名称和标头值的累积大小加上每个标头名称值对32字节的开销。
- 通过在命令行或相应的conf.properties或net.properties文件中使用jdk.http.maxHeaderSize系统属性指定正值,可以更改限制的默认值。负值或零值被解释为没有限制。如果超过限制,请求将失败,并出现协议异常。
- JDK内置了com.sun.net.httpserver的实现。HttpServer(jdk.HttpServer)对服务器准备接受的最大请求标头大小实现了类似的限制。可以通过在命令行上使用sun.net.HttpServer.maxReqHeaderSize系统属性指定正值来更改HttpServer限制。负值或零值被解释为没有限制。默认情况下,限制设置为384kB(393216字节),大小的计算方式与上述相同。如果超过限制,连接将关闭。
- 此外,JDK内置了新java.net.http的实现。HttpClient强制执行两个附加限制:
- 系统属性jdk.httpclient.maxNonFinalResponses可以在java命令行上或conf.properties或net.properties文件中用正值指定,以控制客户端在收到最终响应之前将接受多少临时响应。临时响应被视为信息性响应,其状态在[100199]范围内。这些响应通常在内部处理,或者由实现简单地丢弃。在收到最终回复之前,默认限制现在设置为最多8个临时回复。负值或零值被解释为没有限制。如果超过限制,请求将失败,并出现协议异常。
- 系统属性jdk.httpclient.maxLiteralWithIndexing可以在java命令行上或conf.properties或net.properties文件中用正值指定,以控制服务器在解码一组标头时可以请求客户端向HPack动态表添加多少内容。默认最大值现在设置为512。负值或零值被解释为没有限制。如果超过限制,请求将失败,并出现协议异常。
......
收起介绍展开介绍

发表评论

0条评论