Как устроена строка в C# — ссылочный тип или значимый, и зачем нужен string pool (интернирование)?
Иммутабельность String и String Pool
Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Рейтинг:
2
Сложность:
5
string в C# — ссылочный тип с неизменяемым содержимым. CLR использует intern pool — таблицу статически созданных литералов и интернированных строк, чтобы хранить одну копию одинаковых значений. Это экономит память и ускоряет сравнение через ссылочное равенство для литералов.
Рейтинг:
2
Сложность:
6
String иммутабелен, потому что:
Это безопасно для многопоточности.
Позволяет кешировать строки в String Pool (например, при String s = "text").
Хеш-код строки неизменен, что важно для HashMap.