Системное программирование, теория и практика 'Способ создания и инициализация конструкторов'
"Способ создания и инициализация конструкторов"
Давайте разберем ряд моментов, связанных с созданием и уничтожением объектов. Первый момент — это стек и куча. Вопрос о выделении памяти через стек или кучу связан с тем, как выделяется и освобождается память. Разделяют автоматические и динамические переменные. Для автоматических переменных память создается при входе в процедуру или блок, управляющие этими переменными. При выходе из блока память (автоматически) освобождается. Многие языки используют термин статический (static) для обозначения
переменных, автоматически размещаемых в стеке (в данном случае речь не идет о переменных типа static в С++). Для динамического выделения памяти используется оператор new. Память выделяется по специальному запросу со стороны пользователя. Понятно, что автоматические переменные уничтожаются автоматически, динамические — по запросу со стороны пользователя ключевым словом delete в С++. В Java нет освобождения памяти, осуществляется процесс сборки мусора - автоматически отслеживается ситуация, когда к объекту
нет доступа. Остановимся на указателях. Указатели — это эффективное средство работы с динамической информацией. В языке Java объекты представлены внутренним образом как указатели, но при этом никогда не используются в таком качестве.