Sobes.tech
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.