Sobes.tech
Junior — Middle

Java virtual maşınında yaddaş sahəsi Stack və Heap arasındakı əsas fərqləri izah edin

sobes.tech Süni İntellekt

AI-dan cavab

Java Virtual Maşınası yaddaşı iki əsas sahəyə bölür: Stack (yığım) və Heap (yığım).

  • Stack (yığım) — bu, metodların yerli dəyişənləri və funksiyaların çağırışları haqqında məlumatların (stack çərçivələri) saxlandığı yaddaş sahəsidir. Hər bir işçi axını öz yığımına malikdir. Stack-də verilərə giriş çox sürətlidir, yaddaş metodlara giriş və çıxış zamanı avtomatik olaraq ayrılır və azad edilir. Stack-də primitiv tiplər və obyektə istinadlar saxlanılır.

  • Heap (yığım) — bu, dinamik olaraq new operatoru ilə yaradılmış obyektlər və massivlərin yerləşdiyi yaddaş sahəsidir. Heap bütün işçi axınlar üçün ümumi olur və yaddaş idarəçiliyi burada garbage collector (tullantı toplayıcı) tərəfindən həyata keçirilir. Heap-də obyektlər onlara istinadlar olduğu müddətcə yaşayır.

Qısa olaraq:

  • Stack: sürətli giriş, yerli dəyişənləri və metod çağırışlarını saxlayır, ölçüsü məhduddur.
  • Heap: obyektləri saxlayır, garbage collector tərəfindən idarə olunur, adətən daha böyük və dinamikdir.

Nümunə:

public void nümunə() {
    int a = 10; // a dəyişəni yığında saxlanılır
    MyObject obj = new MyObject(); // referans obj yığında, obyekt heap-də
}