Это может или не может быть хорошо, в основном виртуальная машина дает вам очень мало обещаний о том, что происходит с памятью, используемой jstrings после вызова JNI
В значительной степени прямо из источника: http://java.sun.com/docs/books/jni/html/objtypes.html
JNI передает объекты нативным методам в виде непрозрачных ссылок.Непрозрачные ссылки - это типы указателей C, которые ссылаются на внутренние структуры данных в виртуальной машине Java.Точное расположение внутренних структур данных, однако, скрыто от программиста.Собственный код должен манипулировать базовыми объектами через соответствующие функции JNI, которые доступны через указатель интерфейса JNIEnv.Например, соответствующий тип JNI для java.lang.String - это jstring.Точное значение ссылки jstring не имеет отношения к нативному коду.Нативный код вызывает функции JNI, такие как GetStringUTFChars (§3.2.1), для доступа к содержимому строки.
Короче говоря, вы все равно не должны напрямую обращаться к значению jstring, поэтому нетпричина хранить jstrings, использовать соответствующие методы для преобразования их в собственные строки и хранить их таким образом.