【混合编程jni 】第九篇之Jni总结

本文总结了JNI的关键概念,包括动态库加载、参数传递的细节,如基本类型复制、对象引用的局部和全局管理。探讨了JavaVM和JNIEnv的角色,以及如何查找和使用jclass、jmethodID和jfieldID。同时,阐述了线程在JNI中的处理,包括如何创建和附加线程,以及线程与JNIEnv的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 系列目录:【混合编程Jni】 系列目录_香菜聊游戏的博客-优快云博客

动态库的加载

可以使用标准 System.loadLibrary 从共享库加载原生代码。

关于参数传递

int、char 等这样的基本数据类型,在本地代码和JVM之间进行复制传递,

而对象是引用传递的。每一个引用都包含一个指向JVM中相应的对象的指针,

但本地代码不能直接使用这个指针,必须通过引用来间接使用。

局部引用和全局引用

传递给原生方法的每个参数,以及 JNI 函数返回的几乎每个对象都属于“局部引用”。

这意味着,局部引用在当前线程中的当前原生方法运行期间有效。

在原生方法返回后,即使对象本身继续存在,该引用也无效。

<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香菜+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值