jbyteArray和jbyte指针之间的区别

时间:2014-09-15 04:28:03

标签: java android c++ c java-native-interface

我是JNI的新手。我对jbyteArray和jbyte指针感到困惑。谁能告诉我jbyteArray和jbyte指针之间有什么区别?感谢。

1 个答案:

答案 0 :(得分:1)

jbyteArraybyte[]类型的Java对象的句柄。 jbyte指针,或者换言之,jbyte*是本机C数据类型,例如,它可以获取本机signed char[]数组的地址,但它不映射到任何Java数据类型。

jbyteArray引用的对象是Java对象,因此与任何其他Java对象一样,我们无法手动释放它。一旦它变得遥不可及,它可能最终会被垃圾收集器解除分配。例如,在JNI中,可以使用NewGlobalRef()DeleteGlobalRef()分配和取消分配全局引用,因此如果调用前者,请确保调用后者,就是这样。