Почему Java преобразует байты и короткие операнды в целые во время числового продвижения
Каковы причины расширения небольших типов данных (например, байтов) до int в процессе числового продвижения? Разве нельзя было бы выполнить большинство операций непосредственно с этими меньшими типами данных?
2 ответа
Решение
Виртуальная машина - это виртуальная машина, JIT преобразует это в собственный код и оптимизирует его. Все регистры являются либо 32-битными, либо 64-битными, и "более короткие" операции не обязательно и более быстрые.
Виртуальная машина не поддерживает целые числа меньше 4 октетов, поэтому при работе на виртуальной машине вы работаете с длиной 4 октета или длиной 8 октетов. (Что ж, это относится к массивам, barray sarray и т. Д., Но не для отдельных значений).