Sobes.tech
Junior — Middle

Как е организирана структурата на данните String в оперативната памет?

sobes.tech AI

Отговор от AI

В C# низът (string) е неизменяем (immutable) обект, който в паметта е представен като последователност от символи в кодировка UTF-16.

Структурата на данните String в паметта включва:

  • Обект в управляемата купчина (heap), който съдържа:
    • Заглавие на обекта (метаданни за събирача на отпадъци и типа).
    • Поле за дължината на низа (брой символи).
    • Масив от символи char[], където всеки символ заема 2 байта (UTF-16).

Тъй като низовете са неизменяеми, при промяна се създава нов обект, а старият остава в паметта до събиране на отпадъци.

Пример:

string s = "Пример";
// В паметта, s съхранява обект с дължина 6 и масив от символи 'П','р','и','м','е','р'

Така, низът е обект с фиксирана дължина и последователност от символи, оптимизиран за безопасна и ефективна употреба в .NET.