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