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

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

Ответы [ 2 ]

2 голосов
/ 02 января 2011

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

0 голосов
/ 01 января 2011

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

...