Junior — Middle
Cum este organizată structura de date String în memoria operațională?
sobes.tech AI
Răspuns de la AI
În C#, un șir (string) este un obiect imutabil, care este reprezentat în memorie ca o secvență de caractere în codificarea UTF-16.
Structura de date String în memorie include:
- Un obiect pe heap-ul gestionat, care conține:
- Antetul obiectului (metadate pentru colectorul de gunoi și tipul).
- Câmpul de lungime al șirului (numărul de caractere).
- Un array de caractere
char[], unde fiecare caracter ocupă 2 bytes (UTF-16).
Deoarece șirurile sunt imutabile, orice modificare duce la crearea unui nou obiect, iar cel vechi rămâne în memorie până când este colectat de garbage collector.
Exemplu:
string s = "Exemplu";
// În memorie, s stochează un obiect cu lungimea 7 și un array de caractere 'E','x','e','m','p','l','u'
Prin urmare, un șir este un obiect cu o lungime fixă și o secvență de caractere, optimizat pentru utilizare sigură și eficientă în .NET.