Может быть.Есть методы, которые вы можете вызвать, которые могут дать вам прямой указатель на память Java, но это зависит от возможностей JVM.
С http://java.sun.com/docs/books/jni/html/objtypes.html#4099:
JNI поддерживает семейство функций Get / ReleaseArrayElements (включая, например, Get / ReleaseIntArrayElements), которые позволяют нативному коду получать прямой указатель на элементы примитивных массивов.Поскольку базовый сборщик мусора может не поддерживать закрепление, виртуальная машина может возвращать указатель на копию исходного примитивного массива.
Обратите внимание, что вам нужно освободить указатель, когда вы закончите с ним.
РЕДАКТИРОВАТЬ:
В JDK 1.3 были добавлены функции Get / ReleasePrimtiveArrayCritical () для получения прямого указателя, даже если JVM делаетне поддерживает закрепление.
"These restrictions make it more likely that the native code will
obtain an uncopied version of the array, even if the VM does not
support pinning. For example, a VM may temporarily disable garbage
collection when the native code is holding a pointer to an
array obtained via GetPrimitiveArrayCritical."
Однако ожидается, что вы отпустите указатель как можно скорее, и есть ограничения на ваши взаимодействия с JVM.
Альтернатива, если вы часто, но редковзаимодействия с большим массивом, это получить только небольшие области в массиве, с функциями GetArrayRegion () .