最近在研究JNI部分,有些不太明白jstring
MyNewString(JNIEnv *env, jchar *chars, jint len)
{
    jclass stringClass;
    jmethodID cid;
    jcharArray elemArr;
    jstring result;
    stringClass = (*env)->FindClass(env, "java/lang/String");
    if (stringClass == NULL) {
        return NULL; /* exception thrown */
    }
         /* Get the method ID for the String(char[]) constructor */
              cid = (*env)->GetMethodID(env, stringClass,
                                          "<init>", "([C)V");
              if (cid == NULL) {
                    return NULL; /* exception thrown */
              }
              /* Create a char[] that holds the string characters */
              elemArr = (*env)->NewCharArray(env, len);
              if (elemArr == NULL) {
                    return NULL; /* exception thrown */
              }
              (*env)->SetCharArrayRegion(env, elemArr, 0, len, chars);
              /* Construct a java.lang.String object */
              result = (*env)->NewObject(env, stringClass, cid, elemArr);
              /* Free local references */
              (*env)->DeleteLocalRef(env, elemArr);
              (*env)->DeleteLocalRef(env, stringClass);
              return result;
         }如上代码,为什么stringClass需要释放,而 jmethodID cid不需要呢?