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