Sobes.tech
Junior

Heap жана stack деген эмне?

sobes.tech AI

AIден жооп

Heap жана Stack — бул программалар маалыматтарды сактоо үчүн колдонгон эки эс тутум аймагы.

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

  • Heap (купа) — бул эс тутум аймагы, анда динамикалык бөлүнүү аркылуу объекттер жана маалыматтар сакталат, алардын өлчөмү ишке киргизүү учурунда өзгөрүшү мүмкүн. Javaда объекттер купада түзүлөт, жана garbage collector автоматтык түрдө колдонулбаган эс тутумду бошотот.

Мисал:

public void мисал() {
    int a = 10; // стекте сакталат
    String s = new String("Салам"); // String объекти купада түзүлөт
}

Бул жерде a — жергиликтүү өзгөрмө стекте, ал эми String объекти — купада.