code: public Memory allocate(long size) {
          if(size == 0L)
              return new OffHeapMemory();
  
          // Allocate memory of the given size + HEADER space
          long memorySize = size + OffHeapMemory.HEADER_SIZE;
          long address = UnsafeUtil.unsafe.allocateMemory(memorySize);
          Memory m = new OffHeapMemory(address, size);
          register(m);
          return m;
      }
docs: Allocate a memory of the specified byte length. The allocated memory must be released via `release`
  as in malloc() in C/C++.
  @param size byte length of the memory
  @return allocated memory information