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