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