Junior — Middle
Operasyonel bellekte String veri yapısı nasıl organize edilmiştir?
sobes.tech yapay zeka
AI'dan gelen yanıt
C# dilinde, bir dize (string) değiştirilemez (immutable) bir nesnedir ve bellek içinde UTF-16 kodlamasında karakter dizisi olarak temsil edilir.
String veri yapısı bellek içinde şunları içerir:
- Yönetilen yığında (heap) bir nesne, şunları içerir:
- Nesne başlığı (çöp toplayıcı ve tür için meta veriler).
- Dize uzunluğu alanı (karakter sayısı).
- Her karakterin 2 bayt (UTF-16) kapladığı
char[]karakter dizisi.
Dizeler değiştirilemez olduğundan, değişiklik yapıldığında yeni bir nesne oluşturulur ve eski nesne, çöp toplayıcı tarafından temizlenene kadar bellekte kalır.
Örnek:
string s = "Örnek";
// Bellekte, s 6 uzunlukta ve 'Ö','r','n','e','k' karakter dizisine sahip bir nesne tutar
Bu nedenle, dize nesnesi sabit uzunlukta ve karakter dizisi içeren, .NET'te güvenli ve verimli kullanım için optimize edilmiştir.