Sobes.tech
Middle

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

sobes.tech Süni İntellekt

AI-dan cavab

Yaddaşdakı obyektlər adətən yığımda (heap) saxlanılır.

Yığım, proqramın icrası zamanı obyektlərin dinamik olaraq ayrıldığı yaddaş sahəsidir. Yığımda obyektlərin həyat müddəti, dilə bağlı olaraq, çöp toplayıcı tərəfindən və ya açıq şəkildə yaddaşın azad edilməsi ilə müəyyən edilir.

Yığım ilə fərqli olaraq, yığında (stack) yerli dəyişənlər, obyektlərə istinadlar və funksiyaların çağırışları haqqında məlumatlar saxlanılır. Yığımın ölçüsü sabit və ya məhdud ola bilər və çıxış zamanı məlumatlar silinir.

Fərq Yığım (Heap) Yığım (Stack)
Məqsəd Obyektlərin, massivlərin saxlanması Primitivlər, istinadlar saxlanır
Təyinat Dinamik Avtomatik
İdarəetmə Çöp toplayıcı / açıq idarəetmə Avtomatik
Tezlik Daha yavaş Daha sürətli
Həcmi Elastik, böyük ola bilər Sabit / Məhdud

Java nümunəsi:

// Yığımda 'myObject' istinadı saxlanılır
MyClass myObject = new MyClass(); // Ob'ekt MyClass yığımda saxlanılır

int count = 10; // 'count' dəyişəni (primitiv) yığımda saxlanılır

Python nümunəsi:

# 'my_list' yığımda, siyahı yığımda
my_list = [1, 2, 3]

# 'name' yığımda (istinad), sətir yığımda
name = "Alice"

age = 30 # Tam ədəd, Python-un tətbiqinə görə, yığımda və ya yığımda saxlanıla bilər

Xüsusi yerləşmə proqramlaşdırma dilindən, işləmə mühitindən və arxitekturadan asılı ola bilər (məsələn, escape analizi istifadə edilərsə, obyekt yığımda yerləşdirilə bilər, hətta istinad tipləri üçün də, RUST).