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

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

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

  • Объект в управляемой куче (heap), который содержит:

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

Поскольку строки неизменяемы, при изменении создаётся новый объект, а старый остаётся в памяти до сборки мусора.

Пример:

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

Таким образом, строка — это объект с фиксированной длиной и последовательностью символов, оптимизированный для безопасного и эффективного использования в .NET.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку