private char basicGetChar(int pos) {
      long addr = chunk.getAddressForReadingData(pos, 2);
      if (unaligned) {
        char result = AddressableMemoryManager.readChar(addr);
        if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN) {
          result = Character.reverseBytes(result);
        }
        return result;
      } else {
        int ch1 = AddressableMemoryManager.readByte(addr++);
        int ch2 = AddressableMemoryManager.readByte(addr);
        return (char) ((ch1 << 8) + (ch2 << 0));
      }
    }
Return true if the hardware supports unaligned reads from memory.
geode-core/src/main/java/org/apache/geode/internal/tcp/ByteBufferInputStream.java