code: public ByteBuffer[] toDirectByteBuffers(long offset, long size) {
          long pos = offset;
          long blockSize = Integer.MAX_VALUE;
          long limit = offset + size;
          int numBuffers = (int) ((size + (blockSize - 1)) / blockSize);
          ByteBuffer[] result = new ByteBuffer[numBuffers];
          int index = 0;
          while (pos < limit) {
              long blockLength = Math.min(limit - pos, blockSize);
              result[index++] = UnsafeUtil.newDirectByteBuffer(address() + pos, (int) blockLength, this)
                      .order(ByteOrder.nativeOrder());
              pos += blockLength;
          }
          return result;
  
      }
docs: Gives an sequence of ByteBuffers of a specified range. Writing to these ByteBuffers modifies the contents of this LBuffer.
  @param offset
  @param size
  @return