@Override
 public long allocateMemory(long size) {
   long address = memoryAllocator.allocateMemory(size);
   if (address > 0) {
     unsafe.setMemory(address, size, (byte) 0x00);
   }
   return address;
 }
 @Override
 public <T> void freeObject(T obj) {
   if (obj != null) {
     memoryAllocator.freeMemory(JvmUtil.addressOf(obj));
   }
 }
 @Override
 public void freeMemory(long address) {
   memoryAllocator.freeMemory(address);
 }