Объекты Integer занимают намного больше памяти, чем примитивные значения int в Java.
Integer — это класс-обёртка, который создаёт объект в куче. Этот объект несёт дополнительные накладные расходы сверх простого хранения числового значения, включая:
В отличие от этого, int — это примитивный тип, который хранится прямо в стеке без каких-либо накладных расходов на объект.
int: обычно 4 байта (просто числовое значение)Integer: обычно 16 байт или больше (значение + накладные расходы на метаданные)Это значит, что Integer может использовать в 4 раза больше памяти или ещё больше, в зависимости от реализации JVM.
Используй int, когда нужно:
Используй Integer, когда нужно:
List<Integer>, Map<String, Integer>)Выбирай примитивный int в коде, где важна производительность, и в условиях ограниченной памяти. Используй класс-обёртку Integer только когда нужна семантика объектов — например, в коллекциях или когда требуется поддержка null.
Объект Integer обычно потребляет минимум в 4 раза больше памяти, чем примитив int, из-за метаданных объекта и накладных расходов на выделение в куче.
Новый — ещё не проверен сообществом
Вы