open jdk 17, ByteBuffer 的一段代码
private ByteBuffer getArray(int index, byte[] dst, int offset, int length) {
if (
((long)length << 0) > Bits.JNI_COPY_TO_ARRAY_THRESHOLD) {
long bufAddr = address + ((long)index << 0);
long dstOffset =
ARRAY_BASE_OFFSET + ((long)offset << 0);
long len = (long)length << 0;
try {
SCOPED_MEMORY_ACCESS.copyMemory(
scope(), null, base(), bufAddr,
dst, dstOffset, len);
} finally {
Reference.reachabilityFence(this);
}
} else {
int end = offset + length;
for (int i = offset, j = index; i < end; i++, j++) {
dst[i] = get(j);
}
}
return this;
}
我想知道这个左移 0 位目的是什么