Junior — Middle
Programda veri saklama için bellek yapısı nasıl organize edilmiştir?
sobes.tech yapay zeka
AI'dan gelen yanıt
iOS'te, bir programda veri depolama için bellek yapısı genellikle şu şekilde organize edilir:
- Yığın (Stack): yerel değişkenleri ve fonksiyon çağrılarını tutar. Hızlı bellek tahsisi ve serbest bırakma.
- Yığın (Heap): fonksiyon çağrısından daha uzun süre yaşayan nesne ve yapılar için dinamik bellek tahsisi.
- Veri Segmenti: statik ve küresel değişkenler için.
- Kod Segmenti: programın makine kodu için.
Örneğin, Swift veya Objective-C'de bir sınıf nesnesi oluşturduğunuzda, onun için bellek yığında tahsis edilir ve nesneye referans yığında tutulur. iOS'taki otomatik bellek yönetimi ARC (Automatic Reference Counting) ile gerçekleştirilir, bu da nesnelere olan referans sayısını izler ve artık gerekmediğinde belleği serbest bırakır.
Örnek:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "Ivan") // nesne yığında, referans yığında
print(person.name)
} // fonksiyondan çıkışta referans silinir, ARC nesneyi serbest bırakır eğer başka referans yoksa