code: @Override
      public Object deserialize(byte[] bytes) throws IOException {
          KryoHolder kryoHolder = null;
          if (bytes == null) throw new RuntimeException("bytes can not be null");
          try {
              kryoHolder = KryoPoolImpl.getInstance().get();
              kryoHolder.input.setBuffer(bytes, 0, bytes.length);//call it ,and then use input object  ,discard any array
              return kryoHolder.kryo.readClassAndObject(kryoHolder.input);
          } catch (RuntimeException e) {
              throw new RuntimeException(e);
  		} finally {
  			if (kryoHolder != null) {
  				KryoPoolImpl.getInstance().offer(kryoHolder);
  			}
  			// bytes = null; // for gc
  		}
      }
docs: Deserialize data
  @param bytes what to deserialize
  @return object