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