Middle
Bellekte nesneler nerede saklanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bellek içindeki nesneler genellikle yığında (heap) saklanır.
Heap, program çalışırken nesnelerin dinamik olarak tahsis edildiği bellek alanıdır. Heap'teki nesnelerin yaşam süresi, çöp toplayıcı (varsa) veya açık bellek serbest bırakma ile belirlenir.
Heap'ten farklı olarak, yığında (stack) temel tiplerin yerel değişkenleri, nesne referansları ve fonksiyon çağrılarıyla ilgili bilgiler saklanır. Yığının boyutu sabit veya sınırlı olup, kapsam dışına çıkıldığında veriler silinir.
| Fark | Heap | Stack |
|---|---|---|
| Amaç | Nesnelerin, dizilerin saklanması | Temel tipler, referanslar saklanır |
| Tahsisat | Dinamik | Otomatik |
| Yönetim | Çöp toplayıcı / açık yönetim | Otomatik |
| Hız | Daha yavaş | Daha hızlı |
| Boyut | Esnek, büyük olabilir | Sabit / sınırlı |
Java örneği:
// Yığında 'myObject' referansı saklanır
MyClass myObject = new MyClass(); // MyClass nesnesi heap'te saklanır
int count = 10; // 'count' değişkeni (ilkel) yığında saklanır
Python örneği:
# 'my_list' yığında, liste heap'tedir
my_list = [1, 2, 3]
# 'name' yığında (referans), string heap'tedir
name = "Alice"
age = 30 # Tamsayı, Python uygulamasına bağlı olarak yığında veya heap'te saklanabilir
Özellikle konum, programlama diline, çalışma zamanına ve mimariye bağlıdır (örneğin, escape analizi kullanılırsa, nesne referans tipi olsa bile yığında tahsis edilebilir, RUST).