public static void copy(ByteBuffer src, int srcOffset, byte[] dest, int destOffset, int length) {
    long srcAddress = srcOffset;
    Object srcBase = null;
    if (src.isDirect()) {
      srcAddress = srcAddress + directBufferAddress(src);
    } else {
      srcAddress = srcAddress + BYTE_ARRAY_BASE_OFFSET + src.arrayOffset();
      srcBase = src.array();
    }
    long destAddress = destOffset + BYTE_ARRAY_BASE_OFFSET;
    unsafeCopy(srcBase, srcAddress, dest, destAddress, length);
  }
Copies specified number of bytes from given offset of {@code src} ByteBuffer to the
{@code dest} array.
@param src        source buffer
@param srcOffset  offset into source buffer
@param dest       destination array
@param destOffset offset into destination buffer
@param length     length of data to copy
hbase-common/src/main/java/org/apache/hadoop/hbase/util/UnsafeAccess.java