1

嗨,我正在使用 Java 中的直接缓冲区,我需要对它们进行快速内存复制。在 C 中有 memcpy 命令,在 Java Arrays 中有 Arrays.copyOf。但是没有办法使用数组代替直接缓冲区,因为我需要将它们传输到 OpenGL。

4

3 回答 3

3

如果您的意思是“直接” ByteBuffers,那么有一个put方法可以接受其他ByteBuffer实例,以便您可以复制。

于 2011-05-30T22:06:46.247 回答
3

您可以只使用put()byte[] 或 ByteBuffer,这将在 Sun/Oracle JDK 中使用本机调用 memcpy。

对于直接和堆字节缓冲区put(),使用Bits.copyFromArray()Unsafe.copyMemory()方法。

于 2011-05-31T07:44:03.547 回答
1

检查System.arrayCopy这是在 java 中复制部分数组的最快方法

于 2011-05-30T22:05:26.940 回答