CodeBlanks Logo Icon CodeBlanks

Heap ve stack

Node.js heap ve stack yönetimini öğrenirsin.

Heap ve stack

Node.js belleği iki bölgeye ayırır: stack (yığın) ve heap (yığın bellek). Stack, ilkel değerleri ve fonksiyon çağrı çerçevelerini tutar; hızlı ve otomatik temizlenir. Heap, nesneleri ve dizileri tutar; çöp toplayıcı tarafından yönetilir.

Bir classifyAllocation(type) fonksiyonu bu ayrımı modeller: 'primitive' ise 'stack', değilse 'heap' döndürür. Örnek: classifyAllocation('primitive') 'stack', classifyAllocation('object') 'heap' döndürür. Stack LIFO (son giren ilk çıkar) ile çalışır; fonksiyon döndüğünde çerçevesi hemen kaldırılır. Heap'teki nesneler ise hiçbir başvuru kalmayana kadar yaşar; sonra çöp toplayıcı onları toplar. Bu ayrım, bellek sızıntılarını anlamak için temeldir.

Stack davranışı

Stack, fonksiyon çağrılarıyla büyür ve küçülür. Bir fonksiyon çağrıldığında çerçevesi (parametreler, yerel değişkenler) stack'e eklenir; döndüğünde çıkarılır. Bu, otomatik ve hızlıdır; çöp toplama gerektirmez.

Örnek: function add(a, b) { return a + b; } çağrıldığında a, b ve dönüş adresi stack'e konur. Fonksiyon bitince bunlar kaldırılır. classifyAllocation('primitive') 'stack' döndürür çünkü ilkel değerler (sayı, dize, boolean) stack'te yaşar. classifyAllocation('object') 'heap' döndürür çünkü nesneler heap'te yaşar. Bu ayrım, hangi değerlerin çöp toplamaya girdiğini belirler. Stack temizliği anlıktır; heap temizliği gecikmeli olabilir.

Uygulama Bölge sınıflandırıcı yaz

function classifyAllocation(type) yaz. return type === 'primitive' ? 'stack' : 'heap' ile döndür. console.log(classifyAllocation('primitive')) ve console.log(classifyAllocation('object')) yazdır.

Başlangıç kodu

index.js
// classifyAllocation fonksiyonu yaz
// ilkel tür ise stack, değilse heap döndür
// iki çağrıyı yazdır
// buraya yaz

Örnek çözüm

index.js
function classifyAllocation(type) {
  return type === 'primitive' ? 'stack' : 'heap';
}
console.log(classifyAllocation('primitive'));
console.log(classifyAllocation('object'));

Beklenen çıktı

stack
heap

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir nesne (object) hangi bölgede tutulur?

  • Stack
  • Heap Doğru cevap
  • Yok
  • Her ikisi

Açıklama: Nesneler heap'te tutulur, çöp toplayıcı yönetir.

2 stack değerini döndür

Soru
return type === 'primitive' ? '____' : 'heap';
Cevap
return type === 'primitive' ? 'stack' : 'heap';

Açıklama: İlkel türler stack'te tutulur.

3 Kavramı açıklamasına eşle

Kavram Anlamı
Stack İlkel değerler ve çerçeveler
Heap Nesneler ve diziler
LIFO Son giren ilk çıkar
Çöp toplayıcı Heap'i temizler

Uzman bölümündeki tüm dersler