Насколько велик в байтах упакованный примитив, такой как java.lang.Integer
или java.lang.Character
в Java?
int
составляет 4 байта, типичный указатель также имеет размер 4 байта (если он не сжимается JVM). Стоимость для целого числа (без кеширования) составляет 4 байта + 4 байта = 8 байтов
? Есть ли еще скрытые поля в объекте-поле или дополнительные накладные расходы, связанные с объектами (т.е. есть ли общие затраты на объекты, о которых я не знаю?).
Меня не интересуют вопросы кеширования. Я знаю, что целые числа в определенном диапазоне кешируются JVM.
Можно перефразировать вопрос: на какой максимальный коэффициент следует умножить объем памяти, используемый для значений в штучной упаковке, по сравнению с примитивными значениями?
РЕДАКТИРОВАТЬ: Я понимаю, что существует несколько реализаций JVM. Какова типичная стоимость типичной 32-разрядной реализации HotSpot?