JNI 高级编程与应用实践
1. 全局引用的创建与使用
在 JNI 编程中,我们常常需要创建全局引用。首先,使用本地引用创建全局引用,然后将其存储在 globalString
中。以下是调用相关函数两次的输出示例,展示了全局引用仅在首次调用时创建:
--- FIRST TIME CALLING ---
Global reference does not exist, creating...
The contents of globalString: This is a string
--- SECOND TIME CALLING ---
The contents of globalString: This is a string
需要注意的是,不要忘记编写代码来释放全局引用。何时调用 DeleteGlobalRef
取决于你的应用程序设计。
2. 引用比较
JNI 提供了一个特殊的函数 IsSameObject
,用于测试两个引用背后的对象是否相同。在 C++ 中,关键字 NULL
对应 Java 中的空对象。因此,你可以将 NULL
作为参数传递给 IsSameObject
,或者直接将对象引用与 NULL
进行比较。该函数的原型如下:
jboolean IsSameObj