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