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();
单元测试:设置一个带有毒药屏障的字节数组。如果在测试的框架中有任何边框被触及,则单元测试将失败,例如以下片段:
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();