
JNI
凯皇
尽人事,听天命
展开
-
JNI教程之局部和全局引用
此外,JNI 还提供了局部引用 (Local Reference),它们在本地方法的调用期间是有效的,并且在本地方法返回后会自动释放。但是,如果在一个本地方法中创建了大量的局部引用,可能会超出JNI的局部引用限制,导致内存溢出。理论上JNI的方法全是局部引用,至少官方文档是这么说的。但是,JNI还是提供了两种全局引用类型,用于确保本地代码可以安全地持有对Java对象的引用,即使这些对象在其他地方被垃圾回收也不会受到影响。当不再需要全局引用时,应该使用相应的删除方法来释放它。方法来管理局部引用的作用域。原创 2024-02-21 09:16:48 · 295 阅读 · 0 评论 -
JNI教程之数组操作
指针用完要及时释放,否则gc的内存回收机制会认为该指针指向的内存还在被使用,从而造成内存泄漏。原创 2024-02-20 19:29:01 · 832 阅读 · 0 评论 -
JNI教程之字符串操作
【代码】JNI教程之字符串操作。原创 2024-02-20 19:20:13 · 344 阅读 · 0 评论 -
JNI教程之JNIEnv接口指针
JNI的代码是运行在JVM当中的,并不是属于native代码,所以每个JNI函数都会带一个JNIEnv ,用于在 Java 代码和native代码之间进行通信。通过 JNIEnv,可以在 Java 代码中调用native方法,或者在native代码中调用 Java 方法。在 JNI 中,JNIEnv 是一个指向 JNI 函数表的指针,通过这个指针可以访问 JNI 函数表中定义的各种 JNI 函数。如果你在 JNI 方法中(即在 C/C++ 代码中)需要获取 JNIEnv,可以通过参数来获取。原创 2024-02-20 19:06:53 · 322 阅读 · 0 评论