Что на самом деле происходит, когда объект класса создается в Java?
class Student{ public static void main(String [] args){ Student s1; // Reference s1 is created in the stack s1 = new Studnet(); // Mermory is allocated to s1 in heap } }
- В первом утверждении говорится, что ссылка (s1) создается в стеке. Здесь ссылка означает адрес в памяти.
- Во втором утверждении говорится, что класс Student загружается в основную память, а память выделяется его члену или объекту (s1) в куче, и вместе с этим все данные элементы инициализируются JVM одновременно с их соответствующими значениями по умолчанию.
- JVM резервирует часть памяти кучи для объекта, а размер зарезервированной памяти кучи зависит от размера объекта.
- JVM отображает этот сегмент в куче, чтобы представить все атрибуты сохраняемого объекта.
- Ссылка (адрес в куче) на объект поддерживается JVM и хранится в таблице, которая позволяет JVM отслеживать все объекты, размещенные в куче.
- JVM использует эти ссылки для последующего доступа к объектам (когда программа обращается к объекту).
Нажмите здесь: Hashnode