Все, что я пришел с простым вопросом.Согласно документации по Java и многим статьям о расположении объектов памяти Java, если у нас есть класс с одной переменной int
, общее потребление памяти для этого объекта будет:
- 8 байт для заголовка
- 4 байта для int
- 4 байта (для округления суммы до кратности 8 байтов) = 16 всего байтов
public class Ab {
int b;
}
public static void main(String args[]) throws InterruptedException {
Ab ab = new AB();
}
Теперь моя проблема заключается в том, что когда я использовал Visual vm и посмотрел на дамп кучи, чтобы увидеть этот теоретический подход, я заметил, что потребление памяти для этого объекта составляет 20 байт.вместо 16 ?Почему это происходит?Может кто-нибудь объяснить мне?