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.