Ответ 1
Многобайтовые данные в файлах class
сохраняются big-endian.
От Спецификация виртуальной машины Java, версия Java SE 7, Глава 4: Формат файла class
:
Файл класса состоит из потока 8-разрядные байты. Все 16-битные, 32-битные и 64-битные величины построены по чтение в два, четыре и восемь последовательные 8-битные байты, соответственно. Многобайтовые элементы данных всегда сохраняются в большом порядке, где высокий байты.
Кроме того, операнд в инструкции байткода также является big-endian, если он охватывает несколько байтов.
От Спецификация виртуальной машины Java, версия Java SE 7, Раздел 2.11: Краткое описание набора инструкций:
Если операнд содержит более одного байта в размер, то он сохраняется в big-endian Сначала заказывайте первый байт. Для пример, 16-разрядный индекс без знака в локальные переменные сохраняются как два беззнаковые байты,
byte1
иbyte2
, такие что его значение(byte1 << 8) | byte2
.
Итак, да, я думаю, можно сказать, что виртуальная машина Java использует big-endian.