0

0

Java 已经到来 有什么新功能?

DDD

DDD

发布时间:2024-09-20 08:03:14

|

1177人浏览过

|

来源于dev.to

转载

java 已经到来 有什么新功能?

Java 23 已正式发布!这是一个非 LTS(长期支持)版本。尽管它是一个短暂的版本,但 Java 23 包含了令人兴奋的改进、错误修复,并且还删除了您可能需要注意的功能和选项。

让我们深入了解新功能以及它如何基于 JDK 21 和 JDK 22 等早期版本的功能构建。

范围值:基于 JDK 22 和 JDK 21 预览版构建

JDK 23 中最令人期待的功能之一是 作用域(预览版)。此功能也在 JDK 22 和 JDK 21 中预览,它简化了方法在线程和子线程之间共享不可变数据的方式。在以前的 Java 版本中,处理线程本地数据可能很麻烦并且需要大量内存。范围值通过提供更高效、更低开销的替代方案来改变这一点。

JDK 23 有什么不同? ScopedValue.callWhere() 方法现在使用新的函数接口,这使得编译器更容易推断是否可能引发已检查的异常。这也导致了 ScopedValue.getWhere() 方法的删除,进一步简化了 API。

立即学习Java免费学习笔记(深入)”;

这是我们在早期版本中看到的改进的延续,很高兴看到范围值逐渐成为永久功能。

结构化并发:第三次预览

Java 的并发模型一直很强大,但管理起来却很棘手。输入结构化并发(预览版),它首次出现在 JDK 21 中,现在已经在 J​​DK 23 中达到第三个预览版。这里的想法是通过将在不同线程中运行的相关任务分组到一个线程中,使并发编程更加直观。单个工作单元。这简化了错误处理并提高了取消流程的可靠性。

在 JDK 23 中,结构化并发仍处于预览状态,但它继续使并发代码更易于推理且不易出错。如果您使用过 JDK 21 或 JDK 22 中的预览版,您将会欣赏到此功能的成熟程度。现在,它可以更好地处理线程泄漏等常见并发问题,从而更轻松地编写可靠的多线程代码。

灵活的构造函数主体:自 JDK 22 以来不断发展

另一个受欢迎的补充是灵活的构造函数主体(预览)。首次在 JDK 22 中预览为“super() 之前的语句”,此功能允许开发人员在调用超类构造函数之前编写初始化代码。这个看似很小的变化可以使构造函数逻辑更加清晰,并防止在验证或其他设置逻辑失败时创建不必要的对象。

在 JDK 22 中,引入此功能是为了让开发人员更好地控制构造函数逻辑,JDK 23 中的第二个预览版继续完善该功能。通过将初始化逻辑移到超类调用之前,开发人员可以避免以前混乱的代码库的混乱辅助静态方法和中间构造函数。

隐式声明的类:第三次很有魅力

对于那些教授 Java 或编写快速脚本的人来说,隐式声明的类和实例方法 自从在 JDK 21 中引入以来已经改变了游戏规则。此功能允许初学者编写简化的 Java 程序,而无需理解从一开始就具有复杂的语言功能。

在 JDK 23 中,此功能得到了一些额外的升级。现在,隐式声明的类可以自动导入三个用于简单文本 I/O 的静态方法,并且它们还将按需导入 java.base 模块的所有公共顶级类和接口。这些增强功能有助于使新手的学习曲线更加平滑。

模块导入声明:新预览

JDK 23 中的新预览功能之一是模块导入声明。此功能允许您使用单个语句导入模块导出的所有包,从而简化了模块化库的重用。它对于初学者特别有用,因为他们不再需要记住包在层次结构中的位置,并且它减少了多个按需类型导入声明造成的混乱。

宠物商店
宠物商店

目前,PetShop已经从最初的2.0、3.0等版本,发展到了最新的4.0版本。PetShop 4.0使用ASP.NET 2.0技术开发,其中加入了众多新增特性,因此,在性能、代码数量、可扩展性等方面有了重大改善。可以说,学习PetShop 4.0是深入掌握ASP.NET 2.0技术的捷径。本节将引领读者逐步了解PetShop 4.0的方方面面,包括应用程序安装、功能和用户界面简介、解决方案和体系

下载

虽然这是 JDK 23 中的一个全新功能,但它在使 Java 的模块系统更易于访问方面显示出了巨大的希望,特别是对于那些刚接触模块化编程的人来说。

Markdown 文档评论:Javadoc 的新时代

说实话,使用 HTML 和 @ 标签编写 JavaDoc 可能会很痛苦。在 JDK 23 中,Markdown 文档注释(预览版)功能允许开发人员使用 Markdown 编写 API 文档,从而更轻松地创建可读、格式良好的注释。

虽然这是 JDK 23 中的新功能,但它本应该在几年前添加。 Markdown 在开发者社区中广泛使用,将其引入 JavaDoc 将使编写和维护文档变得更加容易。

Z 垃圾收集器 (ZGC):默认分代模式

如果您自 JDK 15 中引入 Z 垃圾收集器 (ZGC) 以来一直在使用它,您会很高兴知道在 JDK 23 中,ZGC 现在默认为 分代模式 (JEP 474)。此开关通过专注于频繁收集短期对象来提高应用程序性能。虽然非分代 ZGC 在此版本中已被弃用,但这清楚地表明分代方法是 Java 垃圾收集的未来。

如果您在 JDK 22 或更早版本上运行,那么迁移到 JDK 23 应该会带来显着的性能改进,而无需您付出太多努力。

Vector API:仍在孵化中,但更强大

JDK 16 中引入的 Vector API 允许开发人员执行向量计算,并在运行时编译为最佳向量指令。 API 不断发展,在 JDK 23 中,我们看到了第八个孵化器。该 API 仍在孵化中,这意味着它还不是最终确定的功能,但它正在逐渐接近成熟。

对于性能关键型应用程序,特别是那些处理大型数据集的应用程序,Vector API 可以提供巨大的加速。如果您在之前的孵化中使用过它(例如 JDK 22),您会发现它现在更加稳定,但它仍在等待最终的部分到位(可能与 Project Valhalla 相关)。

流收集者:第二次预览

JDK 22 引入了 Stream Gatherers(预览版),该功能通过允许自定义中间操作来增加 Stream API 的灵活性。在 JDK 23 中,它又回来了第二次预览。如果您喜欢使用流来处理数据,您将会欣赏此功能以以前难以实现的方式转换数据管道的能力。

流收集器扩展了流的功能,使开发人员能够轻松处理更复杂的场景,特别是在使用无限流或自定义转换时。

类文件 API:第二次预览

如果您正在构建操作 Java 类文件的工具,那么 JDK 23 中的 Class-File API(预览版)适合您。该 API 首次在 JDK 22 中引入,提供了一种解析和生成类文件的标准方法,无需使用 ASM 等第三方库。 JDK 23 中的第二个预览版改进了此 API,使其更加精简且更易于使用。

对于工具开发者来说,这是一件大事。每次 JVM 规范发生变化时,不再需要忙着更新库——Java 现在有了第一方解决方案。

总结:您应该升级吗?

Java 23 可能不是 LTS 版本,但它包含基于 JDK 21 和 JDK 22 引入的令人兴奋的功能。从作用域值和结构化并发到更好的垃圾收集器以及对流和构造函数的改进,此版本推动了 Java 开发。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1133

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

213

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1801

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

20

2026.01.19

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

469

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

15

2025.12.06

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

503

2023.08.10

Python 多线程与异步编程实战
Python 多线程与异步编程实战

本专题系统讲解 Python 多线程与异步编程的核心概念与实战技巧,包括 threading 模块基础、线程同步机制、GIL 原理、asyncio 异步任务管理、协程与事件循环、任务调度与异常处理。通过实战示例,帮助学习者掌握 如何构建高性能、多任务并发的 Python 应用。

166

2025.12.24

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

1

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 3.6万人学习

Pandas 教程
Pandas 教程

共15课时 | 1.0万人学习

NumPy 教程
NumPy 教程

共44课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号