2014-09-20 7 views
-1

Когда я создаю новый объект, JVM выделяет блок памяти в куче, независимо от данных, которые могут возникнуть. Он может содержать переменные, он может содержать методы. Назовем этот mainObject. Мой вопрос в том, что если есть другой объект; позволяет вызывать его childObject, определенный внутри этого класса mainObject, будет JVM назначать новый блок памяти в другом месте памяти и настраивать некоторый внутренний указатель из mainObject в childObject или он будет определять местоположение ячейки childObject внутри mainObject.Вложенное распределение памяти объекта?

Подробная информация о главном классе

 Public class mainClass{ 
public mainCLass(childClass childclass) 
    } 

Теперь объект этого основного класса создается

mainClass mainclass = new mainCLass(childclass2); 

Теперь вопрос, когда MainClass создается выделения памяти происходит на куче. Этот объект также имеет дочерний класс childClass, который передается в конструкторе. Теперь мой вопрос заключается в том, где создается этот объект childclass. В том же месте памяти, что и основной класс или другое место памяти. Пожалуйста, дайте мне знать, если есть какие-то сомнения.

Tx

+0

Объекты не могут иметь внутри себя объекты , – immibis

+0

Проясните свой словарный запас между «классом» и «объектом», я не могу понять, что вы хотите сказать. – Dici

+0

@ Dici, где кто-нибудь упомянул классы? – immibis

ответ

2

В Java, переменные типов классов являются всегда ссылки. Если класс содержит переменную, тип которой является другим классом (в отличие от примитивного типа, такого как int), данные объекта в памяти будут содержать только указатель. Объекты никогда не внедряются в другие объекты. (Примитивные типы, однако, есть.)

(Ссылка фактически не должна храниться как указатель, технически - она ​​может быть чем-то вроде индекса целого в таблицу указателей, хранящихся в другом месте, чтобы упростить мусор сборщик ищет все объекты. Специфика зависит от реализации JVM, но независимо от того, что это нечто вроде «указателя», которое относится к объекту, расположенному в другом месте кучи.)

+0

Я понимаю. Это все, что я хотел знать .tx для этого сверхзвукового ответа – jagvirsingh5

Смежные вопросы