Объем памяти, занимаемый объектом, варьируется от одной реализации JVM к другой, а иногда и от одной платформы к следующей.
Вы можете оценить сумму, посчитав количество и размер примитивных типов и ссылок на объекты, объявленных как переменные экземпляра класса объекта.
Например:
public class Monkey {
int arms;
Animal parent;
}
.. имеет 1 ссылку на объект и 1 примитив int, что в 32-разрядной архитектуре займет приблизительно 8 байт на экземпляр.