Задать вопрос
wtf_object
@wtf_object

Содержит ли пул интернирования строки после удаления объекта?

К примеру у нас есть некий класc X, который работает со строками.
(в коллекцию добавляются различные строки)

class X {
	private List<string> collection;
	public X() {
		collection = new List<string>();
	}
	public void Add() {
		// Выполним какие-то действия и получим строку. 
		string line = Something();
		// Добавим результат в коллекцию.
		collection.Add(line);
	}
	// Выполняет какие-то действия и каждый раз
	// возвращает новую строку.
	private string Something()
	{ ... }
}


Благодаря интернированию строк каждый раз в пул интернирования будет добавляться новая строка.
Допустим, мы закончили работу со строками и больше объектом, класса X, мы не пользуемся.
Он будет собран сборщиком мусора.
Но ведь пул интернирования будет очищен только после завершения программы.

Получается в пуле будут содержаться строки даже после удаления объекта?
Следовательно память тоже будет занята?
  • Вопрос задан
  • 2300 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 1
aush
@aush
Более того, эти строки могут продолжать там жить и после завершения вашего приложения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы