Java SE Development Kit 23 是 Oracle 公司发布的 Java 语言软件开发工具包,一般简称为 JDK 23。它构成了 Java 技术的核心部分,其中包含了 Java 运行环境、各类 Java 工具以及 Java 基础类库(rt.jar),主要面向移动设备、嵌入式设备上的 Java 应用程序开发。如果需要在电脑上运行 Java 程序,必须先安装好 JDK 环境。JDK 23 属于 Java SE 平台的新版本,该发行版带来了局部变量类型推断、并行完整 GC、应用程序类数据共享等多项改进,建议所有 Java SE 用户升级到这个版本。

1、下载完软件压缩包后,双击运行其中的 jdk-23_windows-x64_bin.exe 文件,然后按屏幕上的指引一步步操作就能装好。
2、它会自行完成JRE的安装,你只要指定好存放位置就行。
3、JDK23 安装完成后,点一下“关闭”就行,效果看下面的图。
4、装好JDK之后,右键“此电脑”进入属性,接着打开高级系统设置,在“高级”选项卡里点“环境变量”,就能完成配置。
5、系统变量→新建 JAVA_HOME 变量
在系统变量里点新建,变量名写 JAVA_HOME,变量值就填 JDK 的安装路径,比如 C:\Program Files\Java\jdk-23。

6、系统变量→寻找 Path 变量→编辑
打开系统变量列表,定位到 Path 这一项并点编辑,在变量值末尾追加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;。如果原本的 Path 值结尾没有分号,需要自己先补一个分号,再把这段内容接上去。

7、系统变量→新建 CLASSPATH 变量
在系统变量里新增一个名为 CLASSPATH 的项,把它的值设为 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar,开头那个点别漏掉,这样就完成系统变量部分的设置了。

8、想确认配置有没有生效,可以打开命令提示符,输入 java -version 并回车,注意 java 和 -version 中间要留一个空格。只要屏幕上正常显示出 Java 的版本信息,就代表安装和配置都已经成功了。

1、核心库/ java.util中
java.util 的 Optional 类里新增了 orElseThrow() 方法,它和已有的 get 方法作用一样,但现在更推荐使用这个新方法。
2、核心库/ java.util中
Java 在 java.util 核心库中新增了若干用于生成不可修改集合的接口。List.copyOf、Set.copyOf 和 Map.copyOf 可以基于已有实例复制出新的集合对象;流包里的 Collectors 类也加入了 toUnmodifiableList、toUnmodifiableSet 与 toUnmodifiableMap 方法,能把流中的元素归集为不可修改的集合。
3、芯-SVC / java.lang.management
新增系统属性 jdk.disableLastUsageTracking,用于关闭运行中虚拟机的 JRE 上次使用记录功能。在命令行加上 -Djdk.disableLastUsageTracking=true 或 -Djdk.disableLastUsageTracking 即可生效;一旦启用该属性,com.oracle.usagetracker.track.last.usage 或 usagetracker.properties 里的相关配置都不会再起作用。
4、芯-SVC / javax.management
JMX代理现在支持把jmxremote.password里的明文密码换成SHA3-512散列值存储,每行按“角色名 散列密码”的格式填写,散列密码本身由64字节随机盐的base64串、哈希结果和算法名三部分组成,中间用空格或制表符隔开,算法名省略时默认按SHA3-512处理。只要management.properties里把com.sun.management.jmxremote.password.toHashes设为true,密码文件可写,且安全管理器(如果启用)允许写入,明文密码就会被哈希自动替换;想改角色密码时,把对应散列值换成新明文或新散列值即可,明文会在下次登录时被哈希掉。每个角色至少保留一条记录,没记录的角色无法访问,同名角色以最后一条为准,用户自己生成的散列文件也能直接用,但必须严格按上述格式来,而且文件只能属主可读,否则程序会报错退出。为避免误改生产环境密码,建议部署只读散列文件,密码散列可以事先通过运行JMX代理生成;代理运行期间最好别编辑该文件,否则在代理读取和回写之间发生的改动可能丢失,文件完整性有保障但外部编辑窗口很窄。
5、热点/ GC
JEP 307 让 G1 的完整垃圾回收实现了并行化。G1 本意是尽量不做完整回收,可一旦并发回收内存跟不上,就会退回完整 GC;旧版 G1 的完整 GC 靠单线程完成标记、清扫和压缩,而现在它改用与年轻代、混合回收相同数量的工作线程并行处理,缓解了最差情况下的延迟。
6、安全库/ java.security
从OpenJDK 9的Linux x64版本开始,cacerts密钥库不再空白,它通过JEP 319填入了由Oracle的Java SE根CA程序所签发的一系列根证书。此前因为缺少受信任的根证书颁发机构,该密钥库为空,用户必须自行设置javax.net.ssl.trustStore属性指向其他密钥库,才能正常建立TLS连接;现在这个问题已经被解决。
7、安全库/ javax.net.ssl中
JDK JSSE 提供程序现已纳入 TLS 会话哈希与扩展主密钥扩展(RFC 7627)的支持。通常情况下,若未启用端点标识,且上一次握手为会话恢复的简短初始握手,服务器证书的变更会受限,除非两份证书所代表的身份可视为一致。但若该扩展被启用或协商成功,这一证书变更限制便不再需要,会被相应取消。遇到兼容性问题时,应用可通过设置系统属性 jdk.tls.useExtendedMasterSecret 为 false 来关闭该扩展的协商;将 jdk.tls.allowLegacyResumption 设为 false,可在未协商会话哈希与扩展主密钥扩展时拒绝简短握手;而将 jdk.tls.allowLegacyMasterSecret 设为 false,则能拒绝那些不支持会话哈希与扩展主密钥扩展的连接。
8、工具/ javac的
对增强 for 循环的字节码生成做了调整,转换方式有了变化。比如遍历 List 时,迭代器变量会挪到循环外面声明,这样一旦不再需要就能马上置空,GC 可以及时回收这部分内存;如果增强 for 循环里操作的是数组,处理思路也差不多。
9、工具/ javadoc的(工具)
javadoc 工具新增了 --add-stylesheet 命令行选项,允许在生成的文档里引入多个样式表。原本的 -stylesheetfile 选项现在可以用 --main-stylesheet 这个别名来调用,方便把主样式表跟其他样式表区分开。
10、工具/ javadoc的(工具)
javadoc 工具新增了 --overridden-methods=值 这个选项。不少类会重写继承来的方法,但规格说明并不改动,用这个选项就能把这类方法和其余继承方法归到一起,不必再按类里声明的其他方法那样逐个记录细节。
11、工具/ javadoc的(工具)
新增了一个内联标记 {@summary …},让开发者能直接指定 API 描述摘要所用的文字,不再依赖默认从首句推断的方式。原来的做法靠简单算法或 java.text.BreakIterator 来猜测,但这种方式有时会判断错第一句的结尾,用这个标记就能手动设定摘要内容,避免推断出错。
v23.0.2版本
JEP 455: 模式匹配中使用原始类型(Primitive Types in Patterns, instanceof, and switch,预览) JEP 466: 类文件API(Class-File API,第二次预览) JEP 467: Markdown格式文档注释(Markdown Documentation Comments) JEP 469: 向量API(Vector API,第八次孵化) JEP 473: 流收集器(Stream Gatherers,第二次预览) JEP 471: 标记sun.misc.Unsafe中的内存管理方法为过时(Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal) JEP 474: ZGC:默认分代收集模式(ZGC: Generational Mode by Default) JEP 476: 模块导入声明(Module Import Declarations,预览) JEP 477: 隐式声明的类和实例方法(Implicitly Declared Classes and Instance Main Methods,第三次预览) JEP 480: 结构化并发(Structured Concurrency,第三次预览) JEP 481: 作用域值(Scoped Values,第三次预览) JEP 482: 灵活的构造函数主体(Flexible Constructor Bodies,第二次预览)
(您的评论需要经过审核才能显示)
0条评论