Junior — Middle
Kaip organizuota duomenų struktūra String operatyvioje atmintyje?
sobes.tech AI
Atsakymas iš AI
C# kalboje (string) yra nekintamas (immutable) objektas, kuris atvaizduojamas atmintyje kaip simbolių seka UTF-16 kodavimu.
String duomenų struktūra atmintyje apima:
- Objektą valdomame krūvoje (heap), kuris apima:
- Objekto antraštę (metaduomenis rinkėjui ir tipui).
- Eilutės ilgį nurodantį lauką (simbolių skaičių).
- Simbolių masyvą
char[], kuriame kiekvienas simbolis užima 2 baitus (UTF-16).
Kadangi eilutės yra nekintamos, bet kokia pakeitimo operacija sukuria naują objektą, o senasis lieka atmintyje iki jo išvalymo rinkėjo.
Pavyzdys:
string s = "Pavyzdys";
// Atmintyje s saugo objektą, kurio ilgis 7 ir simbolių masyvą 'P','a','v','y','zd','y','s'
Taigi, eilutė yra objektas su fiksuotu ilgiu ir simbolių seka, optimizuotas saugiam ir efektyviam naudojimui .NET aplinkoje.