Sobes.tech
Junior

Heap və stack nədir?

sobes.tech Süni İntellekt

AI-dan cavab

HeapStack proqramlar tərəfindən məlumatların saxlanması üçün istifadə olunan iki yaddaş sahəsidir.

  • Stack (yığım) yerli dəyişənlər, funksiyaların parametrləri və dönüş ünvanlarının saxlandığı yaddaş sahəsidir. LIFO (son daxil olan, ilk çıxar) prinsipinə əsaslanır. Funksiya çağırıldıqda, yığımda blok ayrılır və tamamlandıqda sərbəst buraxılır. Yığımın ölçüsü məhduddur və avtomatik idarə olunur.

  • Heap (yığım sahəsi) obyektlərin və məlumatların dinamik olaraq ayrıldığı və proqramın icrası zamanı ölçüsünün dəyişə biləcəyi yaddaş sahəsidir. Java-da obyektlər yığımda yaradılır və çöp toplayıcı istifadə olunmayan yaddaşı avtomatik azad edir.

Nümunə:

public void nümunə() {
    int a = 10; // yığımda saxlanılır
    String s = new String("Salam"); // String obyekti yığımda yaradılır
}

Burada, a yerli dəyişəndir və yığımda yerləşir, və String obyekti yığımda yerləşir.