我想知道是否可以访问带偏移量的 byte[]
而无需复制数据?
我查看了 Arrays.*
、ByteArrayInputStream
和 System.arraycopy
,但它们都需要分配一个新的 byte[]
复制到。
我想要的是 C++
中的等价物:
char* buffer = new char[256];
char* buf_offset = buffer + 128; // <- no copy
最佳答案
您可以改为传递 ByteBuffer
。可以进阶、复制、切片,无需复制。
ByteBuffer 真的很丑陋而且违反直觉。然而,它在新的 JDK API 中被广泛使用,因此人们可能会接受它是一种基本类型。
关于Java:在不执行复制操作的情况下偏移字节[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13403809/