写点什么

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:006089

评论

发布
暂无评论

可怕!RxHttp2,安卓开发基础

android 程序员 移动开发

史上最全Android性能优化总结,经典收藏,一口气拿了9家公司的offer

android 程序员 移动开发

在面试中需要注意哪些问题你知道吗?(内含Android面试题

android 程序员 移动开发

基于 Kotlin + Netty 实现一个简单的 TCP 自定义协议,kotlin扩展函数原理

android 程序员 移动开发

在线二进制转文本工具

入门小站

工具

图片加载框架之图片加载框架选型(一)中篇,阿里P8大佬亲自教你

android 程序员 移动开发

在腾讯从事Android 开发8年的老王,尽然在一轮裁员风暴中绊了跟头!

android 程序员 移动开发

坑!页面短视频加载又卡又慢?阿里P8大佬教你两套办法秒开短视频

android 程序员 移动开发

四张图让你玩转Tomcat系统架构!!!,移动应用开发课程设计报告

android 程序员 移动开发

听我慢慢道来Android-面试中的细节,三年老Android经验面经

android 程序员 移动开发

哭了!失业半年-2020没有风口我也要跳槽,凭本事吃饭有技术到哪都是人才

android 程序员 移动开发

回眸重探锁机制,跨平台移动开发的特点

android 程序员 移动开发

史上最详Android版kotlin协程入门进阶实战(三),4面字节跳动拿到Offer

android 程序员 移动开发

史上最详Android版kotlin协程入门进阶实战(四),flutter开源项目商业化

android 程序员 移动开发

[ CloudWeGo 微服务实践 - 05 ] 服务注册(2)

baiyutang

golang 微服务 11月日更

四张图让你玩转Tomcat系统架构!!!(1),android音频面试题

android 程序员 移动开发

图巨多,手把手教学Android-Studio超详细安装过程,kotlin菜鸟教程

android 程序员 移动开发

地狱难度!字节跳动Android高级岗:说说RecyclerView的回收复用机制

android 程序员 移动开发

史上最详Android版kotlin协程入门进阶实战(三)(1),面试Android岗

android 程序员 移动开发

在中国程序员是青春饭吗?,在阿里工作5年了

android 程序员 移动开发

在Android中集成Flutter的学习笔记,flutter登录跳转

android 程序员 移动开发

四月字节客户端面经,七月内推请找我,一文带你搞懂Android多线程Handler

android 程序员 移动开发

国内大厂在移动端跨平台的框架接入分析,2021年一起努力应对互联网寒冬吧

android 程序员 移动开发

可能一眼看不懂的几行Kotlin代码,程序员面试防坑宝典

android 程序员 移动开发

启动速度与执行效率优化项目实战(四),android开发入门与实战网盘

android 程序员 移动开发

图文DEMO并茂讲解RecyclerView滑动时回收和复用触发的时机

android 程序员 移动开发

在-Kotlin-中使用-Dagger-会遇到的陷阱和优化方法,android开发实例大全PDF

android 程序员 移动开发

只需四点,让你的面试百试百过!,android移动应用基础教程

android 程序员 移动开发

四面阿里,因为最后一个问题与offer失之交臂,android驱动开发

android 程序员 移动开发

因为不了解Android事件分发机制,居然被实习生嘲笑了,天呐

android 程序员 移动开发

史上最详Android版kotlin协程入门进阶实战(一),一线互联网公司面经总结

android 程序员 移动开发

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