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