在 JNI 中,我通过调用 SetObjectArrayElement()
插入一个在 JNI
代码中本地创建的 java 对象来构造一个大数组。
我的问题是,在使用 SetObjectArrayElement()
将对象插入数组后,数组是否存储了一个引用,以便我可以使用 DeleteLocalRef 释放对插入对象的本地引用?
最佳答案
是的。
jobjectArray 指向一个引用数组。
当您将该数组的成员设置为本地引用时,您已经对该对象进行了第二次引用。如果删除本地引用,数组中的引用将保留。垃圾收集器不会处理实际对象,直到没有剩余的可访问引用为止。
关于java - 在 JNI 中构建数组时在 SetObjectArrayElement 之后使用 DeleteLocalRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4369974/