NewStringUTF是否复制传入的const char *
Does NewStringUTF copy the const char * passed in
官方 JNI API 指定是否在从 const char *
创建 jstring
时进行复制。这是引用:
NewStringUTF
jstring NewStringUTF(JNIEnv *env, const char *bytes);
Constructs a new java.lang.String
object from an array of characters
in modified UTF-8 encoding.
这是否意味着 const char *
的副本已制作或我必须自己 strdup
?
NewStringUTF
在 Java 堆中创建一个新的 String 对象。该字符串由 Java 堆中的 byte[]
或 char[]
数组支持,并且它不共享您传入的任何 off-heap 数据。
因此,您不需要 strdup
,内容将被复制(并可能转换)到 Java 堆中。
官方 JNI API 指定是否在从 const char *
创建 jstring
时进行复制。这是引用:
NewStringUTF
jstring NewStringUTF(JNIEnv *env, const char *bytes);
Constructs a new
java.lang.String
object from an array of characters in modified UTF-8 encoding.
这是否意味着 const char *
的副本已制作或我必须自己 strdup
?
NewStringUTF
在 Java 堆中创建一个新的 String 对象。该字符串由 Java 堆中的 byte[]
或 char[]
数组支持,并且它不共享您传入的任何 off-heap 数据。
因此,您不需要 strdup
,内容将被复制(并可能转换)到 Java 堆中。