Stack жана heap эс тутуму арасындагы айырманы түшүндүрө аласызбы?
sobes.tech AI
AIден жооп
Стек жана ылдыйкы — бул C#да маалыматтарды сактоо үчүн колдонулган эки башка эс тутум аймагы, жана алар башкаруу жана максат боюнча айырмаланат.
-
Стек (Stack) — бул жергиликтүү өзгөрмөлөр жана ыкмалардын параметрлери сакталат. Ал LIFO (акыркы кирген, биринчи чыгат) принциби боюнча иштейт. Стекте эс тутум автоматтык түрдө бөлүнөт жана функцияларга кирүү жана чыгуу учурунда бошотулат, бул өтө тез. Стекте негизги түрлөрдүн маанилери жана объекттерге шилтемелер сакталат.
-
Heap (жыйнак) — бул объекттердин динамикалык бөлүштүрүлүшү үчүн эс тутум аймагы.
newаркылуу объект түзүлгөндө, эс тутум жыйнактын ичинде бөлүнөт. Эс тутумду башкаруу Garbage Collector аркылуу жүргүзүлөт, ал колдонулбаган объекттерди бошотот. Жыйнак көбүрөөк ийкемдүү, бирок бөлүштүрүү жана бошотуу операциялары стекке караганда жайыраак.
Мисал:
void Example()
{
int x = 10; // x стекте сакталат
MyClass obj = new MyClass(); // obj — шилтеме стекте, объект — жыйнактын ичинде
}
Бул жерде x — жергиликтүү өзгөрмө, ал стекте, ал эми obj — шилтеме, ал стекте, ал объект жыйнактын ичинде жайгашкан.