@Rienopely

Так сколько занимает реально в оперативной памяти int и long в Java?

Ясное дело что int и long - 32 и 64 бита соответственно. Но где-то я слышал что и byte и short и int и long занимают в памяти одинаковое количество памяти, а разница в них ограничением значения. Правда ли это? Гугл не помог.
  • Вопрос задан
  • 2714 просмотров
Решения вопроса 1
leventov
@leventov
На стеке ничто не занимает меньше 4 байт, потому что в байт-коде есть только инструкции для операций с int, long, float, double и объектными ссылками на стеке: https://en.wikipedia.org/wiki/Java_bytecode_instru...

В памяти объектов все типы занимают "нужное" кол-во байт (за исключением boolean, который мог бы занимать всего один бит, а занимает целый байт, см. java.util.BitSet), но из-за выравнивания объектов (размеры объектов выравниваются по-умолчанию (и как минимум) на границу 8 байт в Hotspot JVM) зачастую получается так, что одно поле byte или boolean увеличивает размер объекта сразу на 4-8 байт. (Но добавление следующих 3-7 полей будут как бы "бесплатно").
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
EugeneP2
@EugeneP2
Java Dev
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы