CodeGym /Java 博客 /China /Project Loom、Containers 和 Jakarta EE:2023 年的 Java 趋势有哪些?
Lucy Oleschuk
第 31 级

Project Loom、Containers 和 Jakarta EE:2023 年的 Java 趋势有哪些?

已在 China 群组中发布
好了,我们已经讨论了 2022 年 Java 发生了什么,以及 2023 年对它有什么期待。但是,在本文中,我们将更深入探索,告诉你对 Java 生态系统和不久将来的预测。无论如何,以上不同的附加工具和改进提高了生产率、稳定性、安全性和 Java 的性能。 Project Loom、Containers 和 Jakarta EE:2023 年的 Java 趋势有哪些? - 1

Project Loom 和 Virtual Threads

我们想从 Project Loom 中创建的期待已久的虚拟线程 (JEP 425) 开始,Project Loom 最终出现在 2022 年推出的 Java 19 版本中,以解决传统并发模型中的限制。虽然这些工具现在只在预览模式下可用,但我们相信在 2023 年的下一个版本中会有所改变。 什么是 Project Loom?这是 Oracle 的一个新项目,主要目标是显著减少编写、维护和观察高吞吐量并发应用程序的工作量。换句话说,Project Loom 旨在支持和推进一个高吞吐量、轻量级的 Java 并发模型,因为传统的操作系统线程(Java 并发模型的核心)有一些缺点,并且在计算上相当昂贵。反之,虚拟线程是更轻量级的线程,不与操作系统线程连接(由 JVM 管理)。这意味着虚拟线程是“每请求对应一个线程”编程的理想选择,可以创建大量的虚拟线程,而不会降低吞吐量。由此,我们可知 Java 19 中引入的虚拟线程非常易于使用。开发人员可以使用现有的 JDK 工具和技术快速排除故障、调试和分析并发应用程序。 正如专家所说,Project Loom 和虚拟线程的引入可能是 Java 历史上最重要的事件之一,目前,围绕这些主题的故事层出不穷。实际上,许多开发人员现在期待 Virtual Threads 从“预览状态”转变为“Java 21 LTS 的一部分”(预计将于 2023 年 9 月发布)。我们预测,虚拟线程的采用将与框架的采用一样继续增长,并将最终使 Java 开发人员更容易编写需要数百万个同时连接且更具可伸缩性的软件。酷,同意吗?

Jakarta EE

Jakarta EE 只是 Java EE(Java 企业版)的新名称,它主要是一个用于构建任务关键型软件的平台。尽管在项目转移到 Eclipse Foundation 的控制下后,平台起新名称,但这并没有改变平台的本质。Jakarta EE 在运行大型、安全、能处理大量信息的企业应用程序时会有用武之地。Jakarta EE 由一套用于创建企业 Java 应用程序软件的组件 API 组成。这些组件通常被称为扩展 Java SE 版本(标准版)的“Jakarta EE 规范”。 这些规范对开发人员帮助很大,因为这让开发人员不再需要自己编写所有代码。因此,开发人员可以专注于应用程序的业务逻辑,而不是次要的基础设施任务。这不仅仅是节省时间和精力。这也是为了给用户创造一个更高效的系统。 2022年的 Jakarta EE 发生了什么?最新版 Jakarta EE 10 于 9 月 22 日面向 Java 社区发布。这个版本含 24 个规范的更新(12 个主要更新和 12 个次要更新)和一个新的核心配置文件。Core Profile 10 无疑已经成为游戏规则的改变者,因为现在它针对的是微服务和云开发运行时。 有些额外的更改涉及到了 EJB Entity Beans 和 Embeddable EJB Container,这些都从 TCK 需求中删除了。尽管在 TCK 内仍然可用,但它们的实现不再是平台兼容性所必需的。 当谈到对 2023 年 Jakarta EE 的期望时,我们相信它将成为主流框架,让你能够轻松提升你的业务应用。 Jakarta EE 将成为涉及微服务或整体开发项目的理想解决方案。然而,你应该记住,你需要使用即将发布的 Vaadin 24(计划在 2023 年 3 月发布)来利用像 Spring Boot 3 或 Jakarta EE 10 兼容应用服务器这样的应用框架。

容器

在容器化 Java 应用程序时,通常应该首先考虑容器有多少可用的 CPU 时间。然后,考虑将有多少可用内存可用(内存总量和 JVM,即 Java 虚拟机的大小)。在容器化的环境中,应用程序可以访问所有处理器,因此可以同时运行多个线程。 如今,Java 应用程序的容器化继续发展,这种趋势似乎不会很快改变。由于现在有更多的 Java 工作负载在容器中运行,我们可以看到从仅仅谈论“如何”容器化 Java 应用程序到“如何更好地”容器化的这种转变。此外,我们还看到了更多关于在容器中运行应用程序的最佳实践的信息和指南。例如,你可能对微软的一篇关于内存分配和垃圾收集的新文章感兴趣。 Project Loom、Containers 和 Jakarta EE:2023 年的 Java 趋势有哪些? - 2

Project Leyden

尽管如此,随着 Project Leyden 最终在 2022 年 5 月复活,对原生 Java 的采用也将继续增加。如果你还没有听说过 Project Leyden,那么值得一提的是,这个项目的主要目标是改善 Java 的长期痛点 — 启动时间慢、达到峰值性能的时间慢,以及 Java 应用程序的占用空间大。这怎么可能?通过将静态运行时映像集成到 Java 平台和 JDK 中。 对于静态映像,我们指的是独立的程序,即应用程序和运行该应用程序的 JDK 所产生的应用程序。对于静态映像可以加载的类,它实际上是一个“封闭的世界”(静态映像既不从映像外部加载类,也不动态创建类)。 然而,我们想指出的是,Project Leyden 的目标并不是提高 Java 应用程序的整体性能。它只是修复了启动部分,并依赖于另一个项目 — GraalVM,该项目正在不断改进并变得越来越受欢迎。此外,它开始支持更多用例,如 Spring 应用程序。

总结

简单性、安全性和健壮性的组合是 Java 在顶尖技术中保持领先地位的主要原因之一。2023 年有望成为更深入采用 Virtual Threads 的一年(在 3 月份发布的 JDK 20 中推出),以进一步提升 Java 的轻量级并发结构。Virtual Threads 将专注于更好的伸缩能力;虚拟线程的线程 API 采用;以及简化的故障排除、调试和分析。 次啊,还预计 GraalVM Community Edition Java 的部分代码将迁移到 OpenJDK,以便加入 GraalVM 和 Java 技术的开发。Oracle 已经宣布,GraalVM JIT 和 AOT 编译器的社区版将在 2023 年迁移到 OpenJDK。 正如你所看到的,Java 生态系统中的变化是显著的,这展示行业是如何向前发展的。你对 Java 的趋势有什么看法?2023 年有什么期待?
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION