Я не уверен, что вы ищете с точками "Базовый размер", но вот несколько, которые я могу ответить с некоторой уверенностью:
если тип примитива отличается, то результирующий тип всегда как минимум самый широкий из двух типов.
не совсем верно. Если вы укажете int и передадите long, вы должны понизить его до int, и будет передано int. Если вы передадите байт, он будет автоматически преобразован в int. Он всегда будет передавать int.
Размер объекта - это сумма всех примитивов и размеров ссылочных типов, которые он содержит
Есть также таблица указателей на функции и некоторые другие вещи, я не думаю, что это так просто.
Статические переменные не содержатся в объекте
Я бы сказал, что они не содержатся в экземпляре объекта, но может быть указатель на них в экземпляре объекта (в той таблице указателей, о которой я говорил) ... но я так не думаю.
'null' (пустая ссылка?)
Если вы передадите значение null, оно будет действовать почти так же, как c (я думаю, что указатель на 0 или какое-то другое предопределенное неверное расположение означает «Null»), но у вас нет доступа к нему, кроме как сравнить его с null или NPE, вы не можете иметь дело с этим другими способами, как вы можете в C
тип объекта отличается (первый общий родительский элемент?) (Как это найти ???)
В объекте хранятся метаданные, которые сообщают вам, какой это тип, но, что более важно, есть таблица указателей, так что вызываемый метод "Правильно" всегда является обращением к указателю. вам не нужно выяснять, какой класс у вас есть на самом деле, и сканировать дерево «Extends», чтобы найти первую реализацию данного метода, вместо этого, независимо от того, к чему приведен ваш класс, есть указатель на правильный метод «toString», который Вы должны использовать.
анонимный класс
Это магические имена, основанные на имени класса родителя и скомпилированные как обычные классы с некоторыми специальными исключениями.