Junior — Middle
Jak je organizována datová struktura String v operační paměti?
sobes.tech AI
Odpověď od AI
V jazyce C# je řetězec (string) nemměnitelný (immutable) objekt, který je v paměti reprezentován jako posloupnost znaků v kódování UTF-16.
Datová struktura String v paměti zahrnuje:
- Objekt na spravovaném haldě (heap), který obsahuje:
- Hlavičku objektu (metadatá pro garbage collector a typ).
- Pole délky řetězce (počet znaků).
- Pole znaků
char[], kde každý znak zabírá 2 bajty (UTF-16).
Protože jsou řetězce neměnitelné, při změně se vytvoří nový objekt, zatímco starý zůstává v paměti do doby, než jej odstraní garbage collector.
Příklad:
string s = "Příklad";
// V paměti s uchovává objekt s délkou 7 a polem znaků 'P','r','z','y','k','l','a','d'
Tedy řetězec je objekt s pevnou délkou a posloupností znaků, optimalizovaný pro bezpečné a efektivní použití v .NET.