随着Java在2024年9月17日实现其第23个主要版本,开发人员将享受许多新功能和改进。Oracle的最新版本承诺使开发更加高效和愉快,同时增强平台的性能、稳定性和安全性。让我们深入探讨开发人员在Java 23中应该感到兴奋的关键方面。
六个月的发布节奏仍在继续
Oracle坚持Java的六个月发布周期,现在已经是第七年了。这种方法成功地为Java生态系统提供了定期更新和创新。长期支持(LTS)版本每两年发布一次,为喜欢较少更新的企业提供稳定性。Java 23标志着这六个月节奏中的第14个版本。
Java 23关注几个关键领域:
1.语言改进
Java 23继续发展语言本身,致力于使Java更容易被较小的程序和脚本访问,同时保持其在大规模应用程序中的优势。
模式、实例和开关中的基本类型(预览):JEP 455
该特性旨在通过使语言更加统一和更具表现力来提高Java编程的生产率。它消除了模式匹配、实例和开关语句中对基本类型的限制,通过在所有上下文中允许基本类型模式来增强模式匹配。
模块导入说明(预览):JEP 476
此功能使开发人员能够快速轻松地导入模块导出的所有包,而不需要导入代码在模块中。这简化了模块化库的重用,并帮助初学者更容易地使用第三方库和基础Java类。
隐式声明的类和实例主方法(第三次预览):JEP 477
这个特性还在继续发展,为Java编程提供了一个平滑的入口。它允许学生和开发者编写他们的第一个程序,而不需要理解为大型程序设计的语言特性。
灵活的构造器主体(第二次预览):JEP 482
此功能允许语句出现在显式构造函数调用之前(例如super(..)或者this(..)).这给了开发人员更大的自由来表达构造函数的行为,并保留了现有的保证,即构造函数在类实例化期间以自顶向下的顺序运行。
2.库增强
Java 23包括几个重要的库更新:
类文件API(第二次预览):JEP 466
这为解析、生成和转换Java类文件提供了一个标准API,帮助开发人员在涉及字节码操作的任务中提高生产率。
矢量API(第八个孵化器):JEP 469
该API允许开发人员表达矢量计算,这些计算在运行时可靠地编译成受支持的CPU架构上的矢量指令,与等效的标量计算相比,有可能实现更高的性能。
流收集器(第二预览版):JEP 473
Stream API的这一增强支持自定义中间操作,允许流管道以现有内置中间操作不容易实现的方式转换数据。这使得流管道更加灵活和富有表现力。
结构化并发(第三次预览):JEP 480
这个特性为结构化并发引入了一个新的API,旨在简化多线程编程。将在不同线程中运行的相关任务整合到一个工作单元中,有助于消除取消和关闭带来的常见风险。
作用域值(第三次预览):JEP 481
这个特性支持在线程内和线程间共享不可变数据,旨在提高并发程序的易用性、可理解性、性能和健壮性。
3.工具更新
减价文件注释:JEP 467
这个特性使得Javadoc文档注释可以用Markdown编写,而不仅仅是用HTML和Javadoc @-标记编写。这一改变使得开发人员更容易以源代码形式编写和阅读API文档注释。
4.运行时优化
ZGC:默认世代模式:JEP 474
Java 23将Z垃圾收集器(ZGC)的默认模式切换到世代模式。这一变化减少了支持两种不同模式所需的资源和维护成本,并有望提高许多应用程序的效率。
Graal JIT编译器集成
从Java 23开始,Oracle将Graal JIT编译器作为一个选项包含在Oracle JDK中。这种集成允许开发人员轻松地在JIT编译器之间切换,对于某些工作负载,尤其是那些需要更快启动时间的工作负载,可能会获得性能优势。
5.完整性特征
反对sun . misc . unsafe for Removal:JEP 471中的内存访问方法
这一变化有助于开发人员了解他们的应用程序何时直接或间接地依赖于sun.misc.Unsafe,计划在未来的版本中删除。这是Oracle不断努力提高Java平台安全性和完整性的一部分。
Java和人工智能
虽然不是特定于Java 23,但值得注意的是,人工智能在Java生态系统中的重要性日益增加。Oracle为Java和AI制定了三管齐下的战略:
1. 与企业数据和云服务的集成包括OCI人工智能服务和OCI Java SDK。
2. 让Java平台更好地适用于原生AI涉及到原生Java框架,如Tribuo、LangChain4j和CoreNLP。
3. 将业务逻辑连接到本地AI库:这是通过Panama和GraalPy这样的项目实现的。
Java正在进行的许多项目,如Project Valhalla和Project Panama,都很好地符合人工智能和机器学习工作负载的需求。这些项目旨在通过值类型、更好的本机互操作性和矢量API来提高Java的性能,所有这些对于人工智能开发都是至关重要的。
Java管理服务和Oracle Java SE通用订阅
除了Java 23,Oracle还发布了Java管理服务(JMS) 9.0,这是一项Oracle云基础设施(OCI)本地服务,提供统一的控制台和仪表板,帮助组织管理本地或任何云中的Java运行时和应用程序。
Oracle Java SE Universal Subscription提供了一流的支持,包括对整个Java产品组合的分流支持、Oracle GraalVM的授权、Java SE Subscription Enterprise Performance Pack、JMS高级功能的访问,以及按照客户业务步伐进行升级的灵活性。
展望未来:JavaOne 2025
甲骨文宣布JavaOne回归,这是全球Java社区的旗舰活动。JavaOne大会2025将于2025年3月17日至20日在加利福尼亚州红木海岸举行。该活动将让开发人员了解最新的Java开发,并与Oracle的Java专家和行业名人进行互动。
这对开发者意味着什么
Java 23代表了语言和平台向前迈进了一大步。开发人员应该记住以下几点:
简化编码:像隐式声明的类和实例main方法这样的特性将使编写小型Java程序和脚本变得更加容易。
改进的性能:随着ZGC的改进和Graal JIT编译器的集成,应用程序可以获得更好的性能和更可预测的行为。
增强的工具:对文档的新的Markdown支持和对开发工具的持续改进将使使用Java变得更加容易。
平台完整性:虽然取消不安全的API可能需要一些代码调整,但它最终会带来一个更安全、更稳定的平台。
人工智能就绪:Java的持续改进使其成为越来越可行的人工智能和机器学习工作负载平台。
更好的库支持:Stream API的增强和Vector API的引入为开发者提供了更强大的工具。
改进的并发性:结构化并发和作用域值特性(尽管仍在预览版中)有望使Java中的并发编程更易于管理,更不容易出错。
结论
Java 23延续了语言深思熟虑的进化传统,在创新与兼容性之间取得了平衡。这些新功能和改进表明,Oracle致力于在不断变化的技术环境中保持Java的相关性和影响力。无论您是从事大型企业应用程序、小型脚本还是尖端的人工智能项目,Java 23都能为每个Java开发人员提供有价值的东西。
自2024年9月17日发布之日起,鼓励开发人员尝试预览版本,对新功能提供反馈,并为即将到来的更改准备代码库。凭借其创新性和稳定性的融合,Java 23正在成为世界上最受欢迎的编程语言之一发展过程中的另一个重要里程碑。