Что на самом деле происходит, когда объект класса создается в 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