Sobes.tech
Junior — Middle

Comment la structure de données String est-elle organisée en mémoire vive?

sobes.tech IA

Réponse de l'IA

En C#, une chaîne (string) est un objet immuable représenté en mémoire comme une séquence de caractères encodés en UTF-16.

La structure de données String en mémoire inclut :

  • Un objet dans le tas géré (heap), qui contient :
    • L’en-tête de l’objet (métadonnées pour le ramasse-miettes et le type).
    • Le champ de longueur de la chaîne (nombre de caractères).
    • Un tableau de caractères char[], où chaque caractère occupe 2 octets (UTF-16).

Puisque les chaînes sont immuables, toute modification crée un nouvel objet, et l’ancien reste en mémoire jusqu’à ce qu’il soit collecté par le ramasse-miettes.

Exemple :

string s = "Exemple";
// En mémoire, s stocke un objet avec une longueur de 7 et un tableau de caractères 'E','x','e','m','p','l','e'

Ainsi, une chaîne est un objet avec une longueur fixe et une séquence de caractères, optimisé pour une utilisation sûre et efficace dans .NET.