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.