Java: 对字节子数组的引用

Java: Reference to sub array of bytes

单元测试:设置一个带有毒药屏障的字节数组。如果在测试的框架中有任何边框被触及,则单元测试将失败,例如以下片段:

byte[]    memory = new byte[Size + 2];

/* Poison barriers. Failure in case of touch! */
memory[0]      = 0x5A; 
memory[Size-1] = 0xA5; 

...
    array = sub-array of memory[] from '1 to Size-2'
    test functions on array
...
/* Check if boarders have been touched. */
hwut_verify(memory[0]      == 0x5A);
hwut_verify(memory[Size-1] == 0xA5);

如何获取实际位于原始字节数组中的子数组?

在 Java 中,一个字节 [] 有一个 header,其中包括它的最大长度。这意味着您无法获得子字节 [],因为它不会是 Object.

你可以做的是使用 ByteBuffer

ByteBuffer bb = ByteBuffer.wrap(byteArray);
ByteBuffer portion = bb.position(10).limit(20).slice();