Sobes.tech
Junior

Obyektlər yaddaşda harada saxlanılır?

sobes.tech Süni İntellekt

AI-dan cavab

Yaddaşdakı obyektlər yığım (heap)-də saxlanılır.

Yığım, proqramın icrası zamanı obyektlərin yerləşdirildiyi dinamik ayrılmış yaddaş sahəsidir. Obyektlərin ölçüsü əvvəlcədən məlum deyil və onlar çöp toplayıcı tərəfindən silinir.

Primitiv məlumat tipləri (tam ədədlər, boolean dəyərlər və s.) adətən yığım (stack)-də saxlanılır. Yığım, statik olaraq ayrılmış yaddaş sahəsidir və yerli dəyişənlərin və funksiyaların çağırış məlumatlarının saxlanması üçün istifadə olunur və avtomatik idarə olunur.

Obyektlərə (yəni, yığımda ünvanlar) istinadlar yığımda və ya yığımda digər obyektlərdə saxlanılır.

Java nümunəsi:

// Primitiv tipli dəyişən (int) yığımda saxlanılır.
int count = 10;

// İstinad dəyişəni (myObject) yığımda saxlanılır.
// MyObject obyekti isə yığımda yaradılır.
MyObject myObject = new MyObject();

// Obeykt daxilindəki primitiv (id) obyektin bir hissəsi kimi yığımda saxlanılır.
myObject.setId(1);

// myObject daxilində başqa obyektə (anotherObject) istinad
// myObject-in bir hissəsi kimi yığımda saxlanılır. AnotherObject özü yığımda yerləşir.
myObject.setRelatedObject(new AnotherObject());

class MyObject {
    private int id; // yığımda saxlanılır (MyObject-in bir hissəsi kimi)
    private AnotherObject relatedObject; // yığımda saxlanılan istinad

    public void setId(int id) {
        this.id = id;
    }

    public void setRelatedObject(AnotherObject relatedObject) {
        this.relatedObject = relatedObject;
    }
}

class AnotherObject {
    // ...
}

Nəticə olaraq:

  • Yığım (stack): Primitiv tiplər, obyektlərə istinadlar.
  • Yığım (heap): Öz obyektlər, və onların sahələri (bu sahələrə primitiv tiplər və digər obyektlərə istinadlar daxildir).