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
newoperatoru 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ə
}