Объекты типа Integer в Java занимают больше памяти, чем примитивный тип int, из-за того, что содержат ссылочную переменную и сам объект, на который эта переменная ссылается. 23 В то время как переменные примитивных типов хранятся в стеке, к ним осуществляется быстрый доступ. 5 Ссылочные переменные ссылаются на объекты, которые хранятся в куче, к ним доступ более медленный. 5
Размер объекта класса Integer в 32-разрядной HotSpot JVM включает заголовок (8 байт), поле int (4 байта) и выравнивание для кратности 8 (4 байта). 2 Итого размер объекта Integer — 16 байт. 2
Таким образом, примитивный тип int хранит значения напрямую, занимая существенно меньше памяти, в то время как Integer требует большего объёма памяти. 1