Результат, который вы наблюдаете, верен для машины с прямым порядком байтов. Я подозреваю, что если вы выполните следующее, вы получите LITTLE_ENDIAN
в качестве ответа.
ByteBuffer bb = ByteBuffer.wrap(new byte[] { 0, 0, 0, -34 });
System.out.println(bb.order());
Если вы хотите принудительно упорядочить порядок байтов для вашего буфера, выполните следующие действия:
ByteBuffer bb = ByteBuffer.wrap(new byte[] { 0, 0, 0, -34 });
bb.order(ByteOrder.BIG_ENDIAN);
System.out.println(bb.order());
System.out.println(bb.getInt( ));
Следует распечатать:
BIG_ENDIAN
222