Какво е heap и stack?
sobes.tech AI
Отговор от AI
Heap и Stack са две области на памет, използвани от програмите за съхранение на данни.
-
Stack (стек) е област на паметта, където се съхраняват локални променливи, параметри на функции и адреси за връщане. Той работи по принципа LIFO (последният влязъл, първият излязъл). Когато се извика функция, се заделя блок в стека, а след приключване се освобождава. Стекът има ограничен размер и се управлява автоматично.
-
Heap (купа) е област на паметта за динамично заделяне на обекти и данни, чийто размер може да се променя по време на изпълнение на програмата. В Java обектите се създават в купата, а събирачът на боклука автоматично освобождава неизползваната памет.
Пример:
public void primer() {
int a = 10; // съхранява се в стека
String s = new String("Здравей"); // обектът String се създава в купата
}
Тук a е локална променлива в стека, а обектът String е в купата.