java - 如何释放jbyteArray?

标签 java java-native-interface jnienv

我的原生方法有一个带有 byte[] 返回值的方法,所以我使用“NewByteArray”来分配 byte[],然后使用 return 返回 jbyteArray。 我应该释放 jbyteArray 吗?以及如何释放jbyteArray? 谢谢。我是一个Java初学者,我的英语很差。

最佳答案

您不想在 native 方法中释放字节数组,因为 native 方法的调用者想要在 Java 中使用该数组。

假设您没有对创建的数组进行全局引用:

然后,垃圾收集器可以在正确的时间删除数组对象,因为一旦方法返回, native 方法保存的对数组的本地引用将被删除。

以下是此类 native 方法的示例:How to return an array from JNI to Java?

关于java - 如何释放jbyteArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41909772/

相关文章:

java - C++ 中的模块路径到 Java JNI 调用

java - JNI_CreateJavaVM函数方法不起作用,无法调试

java - Centos7 上 JVM 崩溃

Java - 用于在谷歌应用引擎上配置的属性文件

java - 如何读取二进制文件中的整数和日期

java - Kotlin:从 java 访问嵌套枚举类

java - Go JNI异常0xc0000005信号在外部代码执行期间到达

java - 引用不同子项目中的自定义 jar 文件

java - UnsatisfiedLinkError - native 库 - jnidispatch.dll

java - JNI 将字符串从 java 传递到 c++,然后将 c++ 字符串传递给字符串数组