Sobes.tech
Junior — Middle

Java Sanal Makinesi'nde yığın (heap) mekanizmasının nasıl çalıştığını ve nesneler için belleği nasıl yönettiğini açıklayın.

sobes.tech yapay zeka

AI'dan gelen yanıt

Java sanal makinesi, nesneler için bellek alanı ayırır — bu heap (yığın). Bir nesne new ile oluşturulduğunda, onun için bellek tam olarak heap'te ayrılır.

Heap, Çöp Toplayıcı (Garbage Collector) tarafından yönetilir ve nesneler erişilemez hale geldiğinde (onlara referans kalmadığında) otomatik olarak belleği serbest bırakır.

Heap'in çalışma prensiplerinin ana noktaları:

  • Heap, nesiller halinde bölünmüştür: Genç Nesil (Young Generation), Eski Nesil (Old Generation) ve bazen Kalıcı Nesil (Permanent Generation) veya metaspace (Metaspace).
  • Genç nesil, yeni oluşturulmuş nesneleri içerir. Buradaki sık sık yapılan çöp toplama işlemleri hızlıdır ve minor GC olarak adlandırılır.
  • Birkaç çöp toplama döngüsünden sonra hayatta kalan nesneler, eski nesile taşınır.
  • Eski nesil daha az sıklıkla temizlenir, bu major GC sırasında olur ve daha maliyetlidir.

Bu şekilde, heap nesneler için dinamik bellek ayırmayı sağlar ve çöp toplayıcı, bellek serbest bırakmayı otomatik olarak yönetir, böylece bellek sızıntısı ve yönetim hatası olasılıklarını azaltır.