Как освободить массив jbyteArray?
В моем нативном методе есть метод с возвращаемым значением byte[], поэтому я использую "NewByteArray" для выделения байта [], а затем использую return для возврата jbyteArray. Должен ли я выпустить jbyteArray? А как выпустить jbyteArray? Спасибо. Я новичок в Java, и мой английский плохой.
1 ответ
Вы не хотите освобождать байтовый массив в своем собственном методе, потому что вызывающая сторона нативного метода хочет использовать массив в Java.
Учитывая, что у вас нет глобальной ссылки на созданный массив:
Затем сборщик мусора может позаботиться об удалении объекта массива в нужное время, потому что локальная ссылка, которую нативные методы хранят в массиве, будет удалена после возврата метода.
Вот пример того, как может выглядеть такой нативный метод: Как вернуть массив из JNI в Java?