网站首页 > 精选教程 正文
当我们谈论架构时,我们必须展示一个有意义的图表,所以这是它:
图7.8 - Project Panama架构
这张图揭示了Panama组件的互操作性。这张图的高潮是Jextract工具。正如您将在本章中看到的,Jextract是一个非常有用的工具,能够使用本地库的头文件并生成低级别的Java本地绑定。这些绑定是Project Panama两个主要API的工作单元:
外部内存API - 用于分配/释放堆外/堆内内存 外部链接器API - 用于直接从Java调用外部函数以及反之
到目前为止描述的过程完全是机械的。当这些API和低级别的Java本地绑定对我们的任务不够时,我们可以进一步采取措施,创建一组更高级别的Java绑定。当然,这不是新手的任务,但它非常强大。例如,您可能有一个用于生成JNI绑定的现有自动化工具,现在您想将您的工具现代化,以生成Panama风格的更高级别的纯Java绑定。Project Panama使用的抽象包括以下内容:
java.lang.foreign.MemorySegment - 这个API形成了堆或本地内存段。堆段访问堆内存,而本地段访问堆外内存。在这两种情况下,我们谈论的是受空间和时间限制的连续内存区域。
java.lang.foreign.Arena(或JDK 20之前版本中的MemorySession) - 这个API可以控制内存段的生命周期。
java.lang.foreign.SegmentScope - 这个API表示内存段的范围(全局、自动或区域范围)。
java.lang.foreign.MemoryLayout - 这个API描述内存段的内容作为内存布局。例如,在基本Java数据类型(int、double、long等)的上下文中,我们有内存值布局(java.lang.foreign.ValueLayout)。
当然,除了这三个支柱之外,我们还有许多其他类和助手。在接下来的问题中,我们将涵盖几个旨在让我们熟悉使用Project Panama API的主要方面的几个场景。
猜你喜欢
- 2024-12-23 应用Stream API与并行流处理大数据量集合操作
- 2024-12-23 字节二面:为什么SpringBoot的 jar可以直接运行?
- 2024-12-23 阿里云 SAE Web:百毫秒高弹性的实时事件中心的架构和挑战
- 2024-12-23 深入 Spring 框架:从核心到高级特性
- 2024-12-23 重学java:数据集合
- 2024-12-23 工业大数据平台技术架构方案(ppt)
- 2024-12-23 大数据整体架构技术方案(ppt)
- 2024-12-23 如何用20%技术解决80%问题?这份Java进阶架构师手册,告诉你答案
- 2024-12-23 深入探索 Java 复杂泛型:使用与限制全解析
- 2024-12-23 大学大数据平台架构规划方案(ppt)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)