Junior — Middle
Wie ist die Datenstruktur String im Arbeitsspeicher organisiert?
sobes.tech KI
Antwort von AI
In C# ist eine Zeichenkette (string) ein unveränderliches (immutable) Objekt, das im Speicher als Folge von Zeichen in UTF-16-Codierung dargestellt wird.
Die Datenstruktur String im Speicher umfasst:
- Ein Objekt im verwalteten Heap, das enthält:
- Die Objektüberschrift (Metadaten für den Garbage Collector und den Typ).
- Das Längenfeld der Zeichenkette (Anzahl der Zeichen).
- Ein Array von Zeichen
char[], wobei jedes Zeichen 2 Bytes (UTF-16) einnimmt.
Da Zeichenketten unveränderlich sind, wird bei Änderungen ein neues Objekt erstellt, während das alte im Speicher verbleibt, bis es vom Garbage Collector entfernt wird.
Beispiel:
string s = "Beispiel";
// Im Speicher speichert s ein Objekt mit Länge 7 und einem Zeichenarray 'B','e','i','s','p','i','e','l'
Daher ist eine Zeichenkette ein Objekt mit fester Länge und einer Folge von Zeichen, das für eine sichere und effiziente Nutzung in .NET optimiert ist.