写点什么

2025 年 JavaOne 技术大会精彩回顾(第二天):外部函数与内存 API、虚拟线程、平台工程、Jakarta EE 的演进

  • 2025-04-05
    北京
  • 本文字数:2425 字

    阅读完需:约 8 分钟

大小:1.12M时长:06:32
2025年JavaOne技术大会精彩回顾(第二天):外部函数与内存API、虚拟线程、平台工程、Jakarta EE的演进

JavaOne 2025 大会的第二天活动于 2025 年 3 月 19 日在加利福尼亚州红木城的 Oracle 会议中心举行。大会的主要亮点包括:Java 外部函数与内存 API 如何解决 Java 原生库中固有的问题;虚拟线程在 Helidon 中的实际应用;如何让 Kubernetes 适用于 Java 团队;Jakarta EE 的过去、现在和未来。


以下是重点演讲的概要。


重点演讲:外部函数与内存 API | 虚拟线程的实际应用 | 平台工程 | Jakarta EE 的演变


Oracle Java 核心库的技术顾问 Per-Åke Minborg 的演讲题为“纯 Java 函数和内存访问”。


Minborg 首先介绍了 JEP 454:外部函数与内存 API,该 API 在 JDK 22 中发布,并由 Project Panama 提供支持。


外部函数与内存 API 是从两个 JEP 演变而来的,分别是:JEP 393:外部内存访问 API(第三次孵化)JEP 389:外部链接器 API(孵化),这两个 JEP 均于 2016 年推出。该 API 是为了替代 Java 原生接口(JNI),JNI 是一种用于与其他编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行互操作的原生编程接口。


JNI 存在的一些问题包括:以原生为中心的编程模型,Java 和 C 的结合非常脆弱;维护和部署成本较高;数据在 JNI 中的传递既繁琐又低效。试图解决这些问题的框架包括:Java Native AccessJava Native RuntimeJavaCPP,但这些框架从未真正流行起来。


在介绍了 JNI 的工作流程以及 JNI 如何处理数据之后,Minborg 提供了多个代码示例,并讨论了它们各自的不足之处。


Minborg 接着介绍了 MemorySegmentMemoryLayout 接口,并提供了大量关于如何访问各种内存布局的代码示例。


Oracle 工程经理 Joe Di Pol 和 Oracle 高级技术成员 Romain Grecourt 的演讲题为“虚拟线程的实际应用:使用 Helidon 构建快速、稳健的 Java 微服务”。


Di Pol 首先介绍了 JEP 444:虚拟线程,该特性在 JDK 21 中发布,并由 Project Loom 提供支持。它将虚拟线程定义为“由 JVM 管理的轻量级线程,有助于编写高吞吐量的并发应用程序”。虚拟线程通过 ForkJoinPool 类调度到平台线程上。


Helidon 1.x 至 3.x 版本支持基于 Netty 的响应式 Web 服务器。然而,随着 2023 年 10 月 Helidon 4.0 的发布,Web 服务器(代号 Helidon Níma)被完全重写,并使用了虚拟线程。


Di Pol 接着对 Helidon 和 MicroProfile 进行了深入介绍,包括:响应式模式阻塞模式的对比(附代码片段);Helidon 4.x 中的虚拟线程;如何解决虚拟线程被钉住的问题以及从中获得的经验教训。使用 synchronized 关键字是导致虚拟线程被钉住的主要原因,这一问题通过 JDK 24 中推出的 JEP 491:在不钉住虚拟线程的情况下进行同步 得以解决。


Payara 首席执行官 Steve Millidge 的演讲题为“构建现代 Java 平台:让 Kubernetes 适用于 Java 团队”。


Millidge 首先回顾了 Java 30 年的创新历程。Java 语言发生了显著的演变,同时在架构、基础设施、从单体到微服务(或许又回到单体)以及应用程序的部署和管理方面也发生了变化。Millidge 强调,我们需要“保持现有的 Java 应用程序与时俱进”。


Java 现代化的现状统计数据显示:企业使用的典型应用程序每年增加 28%;47% 的 Java 应用程序需要现代化;87% 的 Java 应用程序所有者和技术负责人认为现代化 Java 应用程序比其他项目更重要。


Millidge 解释了如何现代化 Java 应用程序,目标是采用新的基础设施和重构应用程序。Kubernetes 可以在这方面提供帮助,然而,尽管它带来了许多优势,在手动处理任务(如维护、节点和 Pod 的供应、路由以及分配 SSL 证书)方面仍然面临挑战。


平台工程为开发团队提供开发平台,帮助团队更高效地开发、部署和管理应用程序。其核心优势在于自动化、自助服务和简化工作流。平台工程可用于简化 Kubernetes 任务的手动处理过程。

Millidge 介绍了 Payara 在平台工程方面的实践以及他们从中获得的现代化方面的好处,包括:与 Java SE、Jakarta EE 和其他框架的兼容性;在本地、云端、多云和混合系统中的成功部署。


Eclipse 基金会 Jakarta EE 开发者布道师 Ivar Grimstad 的演讲题为“Jakarta EE 11 及未来的演变”。


Grimstad 的演讲回顾了 Jakarta EE 自早期的 J2EE 和 Java EE 以来的过去、现在和未来。

在回顾历史时,Grimstad 展示了 Enterprise Java Beans(EJB)的复杂性以及部署 EAR 和 WAR 文件的过程。为了缓解这种复杂性,在早期所做的努力之一是引入了 @Stateless 注解,这是 EJB 3.0 中引入的无状态会话 Bean 的组件定义注解。


在介绍现状时,Grimstad 简要概述了 Jakarta EE 9 和 Jakarta EE 10,然后主要聚焦在 Jakarta EE 11 上,详细介绍了开发者可以期待的 16 项更新规范。他介绍了 Jakarta Data 1.0,这是即将包含在 Jakarta EE 平台和 Web Profile 中的一项新规范。


演示包括一个 Jakarta Data 示例,以及如何使用 @ManagedThreadFactoryDefinition 注解(支持 Java SE 运行时感知功能)在 JDK 21 应用程序中动态启用虚拟线程。


在展望未来时,Grimstad 列举了已提交计划评审的 Jakarta EE 12 规范,包括:Jakarta 上下文和依赖注入 5.0、Jakarta Data 1.1、Jakarta Faces 5.0、Jakarta Pages 4.1 和 Jakarta Web Socket 2.3。


Jakarta NoSQL 1.0Jakarta MVC 3.0 规范有望被包含在 Jakarta EE 12 中。


新的规范想法包括:Jakarta Query、Jakarta CRaC 和 Jakarta AI。此外,还有可能会进行替换 Enterprise Java Beans 的工作。


结论


JavaOne 2025 大会是一场为期三天的活动,涵盖了主题演讲、讲座和实践实验室等,由 Oracle 和开发者关系团队组织策划。会议目录包含了大会所有的相关信息,开发者可以观看 Java Next Livestream 视频来深入了解 Java 的发展,其中包含了 Oracle 专家(如:Java 语言架构师 Brian Goetz、Project Loom 架构师和技术负责人 Ron Pressler、Java 架构师 Paul Sandoz)的精彩内容。


原文链接

https://www.infoq.com/news/2025/03/day-two-java-one-2025/


JavaOne 2025 相关报道:

2025 年 JavaOne 技术大会精彩回顾(第一天):Java 推动的世界

2025-04-05 09:007114

评论

发布
暂无评论

生成式AI新机遇:文心一言三大产业应用

百度开发者中心

#人工智能 文心一言

云主机与云服务器:两者的区别

天翼云开发者社区

云计算 云主机 云服务器

中国云数据仓库,双第一!

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

Adobe联创去世,没他就没有PDF,乔布斯也因他逆风翻盘

Openlab_cosmoplat

PDF

悦数图数据库与 keyarchOS 完成浪潮信息澎湃技术认证

悦数图数据库

数据库 图数据库 分布式图数据库

生成式AI技术的应用与发展

百度开发者中心

文章 #人工智能 ChatGPT 文心一言

PP-TS基于启发式搜索和集成方法的时序预测模型,使预测更加准确

飞桨PaddlePaddle

人工智能 paddle 百度飞桨

IoTLink版本更新v1.38.0

山东云则信息科技

物联网

如何高效实现混合App开发?

FinFish

混合开发 小程序化 混合app 超级App开发

【HCDG城市行东莞站】松山湖开发者村助力企业释放数字新动能

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 8 月 PK 榜

5 个 实用的 JavaScript 开发小技巧

互联网工科生

JavaScript Web应用开发

低代码开发 轻松解决企业数字化能力建设困局

力软低代码开发平台

OpenTiny Vue 3.10.0 版本发布:组件 Demo 支持 Composition 写法,新增4个新组件

OpenTiny社区

前端 开源项目 UI组件库

Flink资源调度模型

腾讯云大数据

flink

生成式AI:从“换脸”到“造脸”的革命

百度开发者中心

#人工智能 生成式AI 文心一言

内容分发网络CDN 概述

天翼云开发者社区

CDN 内容分发网络

持续领跑医疗云市场!天翼云以科技之力助力医疗行业建设

天翼云开发者社区

云计算

第二周作业

大肚皮狒狒

解码全栈

互联网工科生

开发者 全栈工程师 全栈开发

使用 UCS(On-Premises) 管理您的GPU资源池,释放AI大模型算力潜能

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 8 月 PK 榜

生成式AI:文字变图像的神奇力量

百度开发者中心

#人工智能 生成式AI 文心一言

从FTP到SFTP,哪个才是跨国传输大文件的最佳方案

镭速

大文件传输 传输大文件 跨国大文件传输

如何设计自动化测试落地方案

老张

自动化测试 测试方案

2025年JavaOne技术大会精彩回顾(第二天):外部函数与内存API、虚拟线程、平台工程、Jakarta EE的演进_编程语言_Michael Redlich_InfoQ精选文章