Heap ва stack чист?
sobes.tech AI
Ҷавоб аз AI
Heap ва Stack ду минтақаи хотира мебошанд, ки барномаҳо барои нигоҳдории маълумот истифода мебаранд.
-
Stack (қуттӣ) минтақаи хотира аст, ки дар он тағйирёбандаҳои маҳаллӣ, параметрҳои функсияҳо ва суроғаҳои баргардонидашавӣ нигоҳ дошта мешаванд. Он бо принсипи LIFO (охирин даромада, аввал мебарояд) кор мекунад. Вақте ки функсия даъват мешавад, як блок дар стек ҷудо мешавад ва пас аз анҷом, озод карда мешавад. Стек дорои андозаи маҳдуд аст ва автоматӣ идора мешавад.
-
Heap (хол) минтақаи хотира барои тақсимоти динамикии объектҳо ва маълумотҳо мебошад, ки андозаи он метавонад дар вақти иҷрои барнома тағйир ёбад. Дар Java, объектҳо дар холи сохта мешаванд ва ҷамъкунандаи партовҳо автоматӣ хотираро, ки истифода намешавад, озод мекунад.
Масалан:
public void намуна() {
int a = 10; // дар стек нигоҳ дошта мешавад
String s = new String("Салом"); // объект String дар холи сохта мешавад
}
Ин ҷо, a тағйирёбандаи маҳаллӣ дар стек аст ва объект String дар холи ҷойгир аст.