我对从 java 传递给 c 的对象有点困惑?是否应该在本机 jni 方法中删除它们,或者当方法返回时它们将被垃圾收集。例如:
如果我的 java 文件中有本地声明,public native printString(String msg);
并且本地方法const char *message = (jni_env)->GetStringUTFChars(msg, &iscopy);
用于获取字符串的 c 样式字符数组。Shoud I call (jni_env)->ReleaseStringUTFChars(msg, message);
在用本机方法完成所有工作之后。如果是,那么为什么有必要?为什么 java 运行时环境不代表程序员这样做呢?在所有字符串被声明并从java环境传递之后。