Java:在不执行复制操作的情况下偏移字节[]

时间:2012-11-15 18:27:20

标签: java arrays performance memory-management bytearray

我想知道是否有可能,无需复制数据即可访问带有偏移的byte[]
我查看了Arrays.*ByteArrayInputStreamSystem.arraycopy,但他们都需要分配一个新的byte[]进行复制。

我想要的是C++中的相同内容:

char* buffer = new char[256];
char* buf_offset = buffer + 128; // <- no copy

2 个答案:

答案 0 :(得分:4)

您可以改为通过ByteBuffer。它可以高级,复制,切片而无需复制。

ByteBuffer非常丑陋且反直觉。然而,它在新的JDK API中被广泛使用,因此人们可能会接受它是一种基本类型。

答案 1 :(得分:1)

不,没有相应的。您只需要自己跟踪偏移量。您总是可以创建一个类来封装(数据,偏移)对。