Sobes.tech
Junior — Middle

Yığın ve heap belleği arasındaki farkı açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Stack ve yığın, C#'ta veri depolamak için kullanılan iki farklı bellek alanıdır ve yönetim şekilleri ile amaçları bakımından farklılık gösterirler.

  • Stack (Yığın) — yerel değişkenlerin ve metod parametrelerinin saklandığı bellek alanıdır. LIFO (son giren ilk çıkar) prensibiyle çalışır. Stack'teki bellek, fonksiyonlara giriş ve çıkış sırasında otomatik olarak tahsis edilir ve serbest bırakılır, bu oldukça hızlıdır. Stack'te temel tip değerleri ve nesne referansları saklanır.

  • Heap (Yığın) — nesnelerin dinamik olarak tahsis edildiği bellek alanıdır. Bir nesne new anahtar kelimesiyle oluşturulduğunda, bellek heap'te tahsis edilir. Heap'teki bellek yönetimi, kullanılmayan nesneleri serbest bırakan Çöp Toplayıcı (Garbage Collector) tarafından yapılır. Heap daha esnektir, ancak tahsis ve serbest bırakma işlemleri stack'e göre daha yavaştır.

Örnek:

void Example()
{
    int x = 10; // x stack'te saklanır
    MyClass obj = new MyClass(); // obj stack'te bir referanstır, nesne heap'tedir
}

Burada, x stack'te yerel bir değişkendir ve obj stack'te bir referanstır, nesne ise heap'tedir.