Ի՞նչ է heap-ը և stack-ը։
sobes.tech AI
Պատասխան AI-ից
Heap և Stack երկուսը հիշողության տարածքներ են, որոնք ծրագրերը օգտագործում են տվյալների պահեստավորման համար:
-
Stack (ստակ) — սա հիշողության տարածք է, որտեղ պահվում են տեղական փոփոխականները, ֆունկցիաների պարամետրերը և վերադարձի հասցեները: Այն աշխատում է LIFO (վերջին մտավ՝ առաջին դուրս) սկզբունքով: Երբ կանչվում է ֆունկցիա, նրա համար հատկացվում է բլոկ ստակում, և ավարտից հետո այն ազատվում է: Ստակն ունի սահմանափակ չափս և ավտոմատ կառավարվում է:
-
Heap (հավաք) — սա հիշողության տարածք է, որտեղ կատարվում է օբյեկտների և տվյալների դինամիկ հատկացում, որոնց չափը կարող է փոխվել ծրագրի գործարկման ժամանակ: Java-ում օբյեկտները ստեղծվում են հավաքում, և գարշապարը ավտոմատ կերպով ազատում է օգտագործված չլինող հիշողությունը:
Օրինակ՝
public void օրինակ() {
int a = 10; // պահվում է ստակում
String s = new String("Բարև"); // String օբյեկտը ստեղծվում է հավաքում
}
Այստեղ a — տեղական փոփոխական է ստակում, իսկ String օբյեկտը — հավաքում։