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.