Тип int, byte, и short в циклах

273
08 июня 2017, 05:42
  • Тип byte имеет диапазон значений от -128 до 127.

  • Тип short — от -32768 до 32767.

  • Тип int — от -2147483648 до 2147483647.

Почему, практически везде в управлении циклами используется именно тип int, тогда как вполне было бы достаточно использовать byte или short?

for(int i = 0; i < 10; i++)
//  ^^^
{
    // ...
}
Answer 1

Можно сделать проще: посмотреть, почему переменные типа byte или short вообще используются крайне редко.

Логика проста. Большинство компиляторов привыкло работать с 32-х разрядными числами. То есть в работе он все равно расширит byte до int. А если нет разницы, зачем пытаться оптимизировать?

Использовать более краткие типы никто не запрещает. Но зачем? Экономия памяти (в масштабах современных приложений) иллюзорна, а компилятору приходится делать меньше работы (не приходится расширять числа).

Answer 2
  1. Считается, что int производительнее. И то количество памято, которые вы экономите на short и byte, должно быть в 99.9 процентов безразлично.

  2. Мелкий диапазон значений byte часто может привести к «переливанию» за край возможного, если за этим не следить. На практике вам часто могут понадобиться значения больше 127.

Если вы понимаете английский, то можете прочитать ответ про C# на английской версии сайта. Ответ про Java будет практически идентичным.

READ ALSO
Библиотеки для работы с usb в java

Библиотеки для работы с usb в java

Подскажите пожалуйста библиотеки для работы с usb а точнее получение и отправка данных по usb

257
Как сделать наведение на блок товара чтобы не ехала верстка?

Как сделать наведение на блок товара чтобы не ехала верстка?

Подскажите какие моменты необходимо учитывать при верстке подобных конструкций ? Если делать обычным увеличением высоты при наведении то буду...

297
Смена background-image по скроллу

Смена background-image по скроллу

Доброго времени сутокТакая задача: необходимо дважды сменить значение background-image

324