Почему Java преобразует байты и короткие операнды в целые во время числового продвижения

Каковы причины расширения небольших типов данных (например, байтов) до int в процессе числового продвижения? Разве нельзя было бы выполнить большинство операций непосредственно с этими меньшими типами данных?

2 ответа

Решение

Виртуальная машина - это виртуальная машина, JIT преобразует это в собственный код и оптимизирует его. Все регистры являются либо 32-битными, либо 64-битными, и "более короткие" операции не обязательно и более быстрые.

Виртуальная машина не поддерживает целые числа меньше 4 октетов, поэтому при работе на виртуальной машине вы работаете с длиной 4 октета или длиной 8 октетов. (Что ж, это относится к массивам, barray sarray и т. Д., Но не для отдельных значений).

Другие вопросы по тегам