Junior — Middle
Come è organizzata la struttura dati String nella memoria operativa?
sobes.tech AI
Risposta dell'AI
In C# una stringa (string) è un oggetto immutabile rappresentato in memoria come una sequenza di caratteri codificati in UTF-16.
La struttura dati String in memoria include:
- Un oggetto nel heap gestito, che contiene:
- L'intestazione dell'oggetto (metadati per il garbage collector e il tipo).
- Il campo di lunghezza della stringa (numero di caratteri).
- Un array di caratteri
char[], dove ogni carattere occupa 2 byte (UTF-16).
Poiché le stringhe sono immutabili, ogni modifica crea un nuovo oggetto, mentre il vecchio rimane in memoria fino a quando il garbage collector non lo rimuove.
Esempio:
string s = "Esempio";
// In memoria, s memorizza un oggetto con lunghezza 7 e un array di caratteri 'E','s','e','m','p','i','o'
Pertanto, una stringa è un oggetto con lunghezza fissa e una sequenza di caratteri, ottimizzato per un uso sicuro ed efficiente in .NET.