JNI第二期:JNI(Java Native Interface)的参数传递和返回
- 2026-02-21
- 22
- 0
- 2
- 30.2℃
JNI(Java Native Interface)是Java与本地代码(C/C++)交互的桥梁,支持参数传递和返回值处理。其核心包括数据类型映射、类型签名表示以及基本类型与对象类型的操作方法。
Java基本数据类型在JNI中通过添加前缀“j”映射到对应的本地类型,如`int`映射为`jint`,`boolean`映射为`jboolean`。对象类型统一用`jobject`表示。JNI使用类型签名来标识Java数据类型,例如`int`的签名是`I`,`java.lang.String`的签名是`Ljava/lang/String;`,方法的签名则结合参数和返回类型,如`int sum(int, int)`的签名为`(II)I`。
基本类型可以直接在Java和本地代码间传递和转换。对象类型的操作则类似于Java反射机制,需要获取类、方法或字段的句柄(如`jclass`、`jmethodID`),并通过JNI函数创建、访问或修改对象。对于在本地代码中创建的对象,若需在Java中持续使用,应通过`NewGlobalRef`创建全局引用,并在使用后通过`DeleteGlobalRef`释放,以避免内存泄漏。
通过具体案例展示了基本类型(如整数求和、布尔值转换)和对象类型(如创建`Student`对象并设置属性)的交互实现,包括本地方法的编写、编译为动态链接库及在Java中调用的完整流程。
JNI第一期:Java的JNI入门HelloWorld
- 2026-02-20
- 23
- 2
- 30.3℃
本文档介绍了 Java JNI (Java Native Interface) 的入门教程,通过一个 HelloWorld 示例演示了如何在 Java 中调用 C/C++ 本地方法。核心流程包括:用 native 关键字声明本地方法并加载动态链接库;通过 javac -h 命令生成 JNI 头文件;实现头文件中定义的 C 函数;最后编译为共享库并运行。文档还详细说明了头文件和方法命名的转换规则,以及静态方法和实例方法在 JNI 函数签名中的参数区别(分别为 jclass 和 jobject)。
JAVA新一代NIO模型学习记录
- 2026-02-01
- 12
- 0
- 0
- 25.2℃
JAVA新一代NIO模型学习记录 NIO的三大组件是:Buffer、Channel、Seclector 缓冲区buffer 在NIO中数据的读写是按块进行读写,每一个buffer代表一个数据块 基本使用 Java的八大数据类型中,除了boolean类型外,都有对应的Buffer类型,例如:int类型
RustDesk服务部署
RustDesk服务部署 官网 一个使用rust编写的,开源的高性能的,跨平台的,支持自定义的远程控制软件 支持p2p和中继的网络架构 Github地址 服务器 通过docker部署 官方文档 hbbs:用于记录客户端的信息,运行与客户端之间的心跳机制,辅助客户端之间
Spring Cloud Alibaba Seata分布式事务组件使用教程
Spring Cloud Alibaba Seata分布式事务组件使用教程 什么是分布式事务 数据库中的事务是数据库写数据时出现错误时保证数据一致性的机制,单体服务中依靠数据库中的事务机制就能保证数据一致性 在分布式服务中,一个业务功能,会涉及多个服务节点,每个服务节点都有需要开启一个事务来保证数据
分布式消息队列(RabbitMQ)学习记录
分布式消息队列(RabbitMQ)学习记录 本文使用的操作系统为windows,使用JDK17 RabbitMQ官网 分布式消息队列技术选型参考 分布式消息队列的使用场景: 异步处理 应用解耦 流量削峰 流量削峰 基本概念 AMQP协议(Advanced Message Queue Protocol
- 2025-10-10
- 18
- 0
- 0
- 25.8℃
OpenFeign远程调用组件的使用教程
OpenFeign远程调用组件的使用教程 使用的springcolud版本是 <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>sprin
Spring Cloud Alibaba Sentinel使用教程
Spring Cloud Alibaba Sentinel使用教程 什么是Sentinel Sentinel的github官网 Sentinel官网 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性
Spring Colud Alibaba Nacos微服务组件的使用教程
Spring Colud Alibaba Nacos微服务组件的使用教程 Nacos官网 什么是nacos Dynamic Naming and Configuration Service(动态命名和配置服务) nacos可以作为服务注册中心 nacos可以作为配置中心 nacos即支持AP也支持C