Почему инициализация объекта используется с помощью ключевого слова new
, называемого динамическим распределением памяти, поскольку само время компиляции нам нужно знать память, необходимую для этого объекта.Явное распределение динамической памяти?
Кроме того, пожалуйста, объясните, что происходит, когда вы делаете ClassA object = new ClassA();
в кучи и стек.
Почему объект хранится в Heap и ссылка сохраняется в стеке? – JavaUser
В стеке хранятся локальные переменные вызова метода. Здесь я предположил, что переменная 'obj' была в вызове метода, поэтому, очевидно, ссылка на объект находится в стеке. Сам объект находится в куче, как и любой другой объект Java во всей программе. Даже классы находятся в куче (хотя компилятор JIT может делать некоторые дополнительные трюки за кулисами). –