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).