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