Yığın və yığım yaddaşı arasındakı fərqi izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Stack və yığın, C#-da məlumatların saxlanması üçün istifadə olunan iki fərqli yaddaş sahəsidir və idarəetmə və məqsəd baxımından fərqlənirlər.
-
Stack — yerli dəyişənlərin və metod parametrlərinin saxlandığı yaddaş sahəsidir. LIFO (son daxil olan, ilk çıxarılır) prinsipinə əsaslanır. Stack-də yaddaş avtomatik olaraq funksiyalara giriş və çıxış zamanı ayrılır və azad edilir, bu çox sürətlidir. Stack-də primitiv tiplər və obyektlərə istinadlar saxlanılır.
-
Heap (Yığın) — obyektlərin dinamik olaraq ayrıldığı yaddaş sahəsidir.
newilə obyekt yaradıldıqda, yaddaş heap-də ayrılır. Heap-də yaddaş idarəetməsi Garbage Collector (Tullantı Toplayıcı) tərəfindən həyata keçirilir, istifadə olunmayan obyektlər azad edilir. Heap daha çevikdir, amma ayırma və azad etmə əməliyyatları stack-ə nisbətən daha yavaşdır.
Nümunə:
void Example()
{
int x = 10; // x stack-də saxlanılır
MyClass obj = new MyClass(); // obj stack-də istinad, obyekt heap-də
}
Burada, x yerli dəyişəndir və stack-də saxlanır, obj isə stack-də istinad edir və obyekt heap-də yerləşir.