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 — в куче.