我是JNI的新手。我对jbyteArray和jbyte指针感到困惑。谁能告诉我jbyteArray和jbyte指针之间有什么区别?感谢。
答案 0 :(得分:1)
jbyteArray
是byte[]
类型的Java对象的句柄。 jbyte
指针,或者换言之,jbyte*
是本机C数据类型,例如,它可以获取本机signed char[]
数组的地址,但它不映射到任何Java数据类型。
jbyteArray
引用的对象是Java对象,因此与任何其他Java对象一样,我们无法手动释放它。一旦它变得遥不可及,它可能最终会被垃圾收集器解除分配。例如,在JNI中,可以使用NewGlobalRef()
和DeleteGlobalRef()
分配和取消分配全局引用,因此如果调用前者,请确保调用后者,就是这样。