Sobes.tech
Junior — Middle

Operatsion xotirada String ma'lumotlar tuzilmasi qanday tashkil etilgan?

sobes.tech AI

AIdan javob

C# tilida, satr (string) o'zgarmas (immutable) ob'ekt bo'lib, u xotirada UTF-16 kodlashda belgilar ketma-ketligi sifatida taqdim etiladi.

String ma'lumotlar tuzilmasi xotirada quyidagilarni o'z ichiga oladi:

  • Boshqariladigan yirik (heap) ob'ekt, u quyidagilarni o'z ichiga oladi:
    • Ob'ekt sarlavhasi (yig'ish to'plovchi va tur uchun metama'lumotlar).
    • Satrdagi uzunlik maydoni (belgilar soni).
    • Har bir belgi 2 bayt (UTF-16) oladigan char[] belgi massiv.

Satrlar o'zgarmas bo'lgani uchun, ularni o'zgartirishda yangi ob'ekt yaratiladi, eski ob'ekt esa yig'ish to'plovchi tomonidan tozalanmaguncha xotirada qoladi.

Misol:

string s = "Misol";
// Xotirada, s 5 uzunlikda va 'M','i','s','o','l' belgi massivini saqlovchi ob'ekt.

Shu sababli, satr - bu belgilarning doimiy uzunlik va ketma-ketlikka ega ob'ekti bo'lib, .NETda xavfsiz va samarali foydalanish uchun optimallashtirilgan.