code: public static byte[] allocateReuseBytes(int length) {
  		byte[] bytes = BYTES_LOCAL.get();
  
  		if (bytes == null) {
  			if (length <= MAX_BYTES_LENGTH) {
  				bytes = new byte[MAX_BYTES_LENGTH];
  				BYTES_LOCAL.set(bytes);
  			} else {
  				bytes = new byte[length];
  			}
  		} else if (bytes.length < length) {
  			bytes = new byte[length];
  		}
  
  		return bytes;
  	}
docs: Allocate bytes that is only for temporary usage, it should not be stored in somewhere else.
  Use a {@link ThreadLocal} to reuse bytes to avoid overhead of byte[] new and gc.
  
  <p>If there are methods that can only accept a byte[], instead of a MemorySegment[]
  parameter, we can allocate a reuse bytes and copy the MemorySegment data to byte[],
  then call the method. Such as String deserialization.