Sobes.tech
Back to questions
Junior
158

Что такое heap и stack?

Answer from AI

sobes.tech AI

Heap и Stack — это две области памяти, используемые программами для хранения данных.

  • Stack (стек) — это область памяти, где хранятся локальные переменные, параметры функций и адреса возврата. Он работает по принципу LIFO (последним пришёл — первым вышел). Когда вызывается функция, для неё выделяется блок в стеке, а после завершения — освобождается. Стек имеет ограниченный размер и управляется автоматически.

  • Heap (куча) — это область памяти для динамического выделения объектов и данных, размер которых может меняться во время выполнения программы. В Java объекты создаются в куче, а сборщик мусора автоматически освобождает неиспользуемую память.

Пример:

public void example() {
    int a = 10; // хранится в стеке
    String s = new String("Hello"); // объект String создаётся в куче
}

Здесь a — локальная переменная в стеке, а объект String — в куче.