Задать вопрос
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, мы не пользуемся.
Он будет собран сборщиком мусора.
Но ведь пул интернирования будет очищен только после завершения программы.

Получается в пуле будут содержаться строки даже после удаления объекта?
Следовательно память тоже будет занята?
  • Вопрос задан
  • 2299 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
aush
@aush
Более того, эти строки могут продолжать там жить и после завершения вашего приложения.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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