Sobes.tech
Junior — Middle

Ako je organizovaná dátová štruktúra String v operačnej pamäti?

sobes.tech AI

Odpoveď od AI

V jazyku C# je reťazec (string) nemenný (immutable) objekt, ktorý je v pamäti reprezentovaný ako sekvencia znakov v kódovaní UTF-16.

Štruktúra dát String v pamäti zahŕňa:

  • Objekt na spravovanom haldovom priestore (heap), ktorý obsahuje:
    • Hlavičku objektu (metadáta pre zberač odpadkov a typ).
    • Pole dĺžky reťazca (počet znakov).
    • Pole znakov char[], kde každý znak zaberá 2 bajty (UTF-16).

Keďže reťazce sú nemenné, pri zmene sa vytvorí nový objekt, zatiaľ čo starý zostáva v pamäti, kým ho nezbaví zberač odpadkov.

Príklad:

string s = "Príklad";
// V pamäti, s uchováva objekt s dĺžkou 7 a pole znakov 'P','r','í','k','l','a','d'

Preto je reťazec objekt s pevnou dĺžkou a sekvenciou znakov, optimalizovaný pre bezpečné a efektívne použitie v .NET.