Sobes.tech
Junior — Middle

Programlamada bağlamında yığındaki ve yığında bellek yönetimi arasındaki farkları açıklayın.

sobes.tech yapay zeka

AI'dan gelen yanıt

Programlamada, bellek genellikle iki ana yöntemle yönetilir: yığın ve yığın alanı.

Yığın — fonksiyonların yerel değişkenleri ve parametreleri depolayan bir bellek alanıdır. LIFO (son gelen ilk çıkar) prensibiyle çalışır. Yığında bellek, fonksiyonlara giriş ve çıkış sırasında otomatik olarak tahsis edilir ve serbest bırakılır, bu çok hızlı ve etkilidir. Ancak, yığının boyutu sınırlıdır ve büyük nesneleri veya dinamik yaşam süresine sahip verileri depolayamaz.

Yığın alanı (Heap) — dinamik tahsis için kullanılan bellek alanıdır, burada nesneler oluşturulur ve referanslar kaldığı sürece yaşarlar (Go'da, çöp toplayıcı kullanılmayan belleği otomatik olarak serbest bırakır). Heap'teki bellek, manuel veya otomatik olarak tahsis edilir ve serbest bırakılır, bu yığından daha yavaş olsa da, rastgele yaşam süresi ve büyük boyutlu nesnelerin oluşturulmasına izin verir.

Go'da örnek:

func örnek() {
    x := 10           // x değişkeni yığında saklanır
    p := new(int)     // heap'te bellek tahsisi
    *p = 20
}

Burada, x yerel bir değişkendir ve yığında, p ise heap'teki belleğe işaret eder.

Özetle:

  • Yığın: hızlı tahsis ve serbest bırakma, sınırlı boyut, yerel veriler.
  • Heap: dinamik tahsis, daha büyük boyut, nesnelerin yaşam süresinin yönetimi.