Сохраняет ли CLR / JVM один внутренний пул для всех работающих приложений .net / java ?

Ниже приводится выдержка из MSDN:

Среда CLR сохраняет хранение строк за счет ведения таблицы, называется внутренний пул, который содержит единственная ссылка на каждый уникальный буквальная строка объявлена ​​или создана программно в вашей программе. Следовательно, экземпляр буквального строка только с определенным значением существует один раз в системе.

Например, если вы назначите такой же буквальная строка для нескольких переменных, среда выполнения получает то же самое ссылка на буквальную строку из внутренний пул и назначает его каждому переменная.

Метод стажеров использует пул стажеров. для поиска строки, равной значение ул. Если такая строка существует, его ссылка в внутреннем пуле вернулся. Если строка не существует, ссылка на str добавляется к внутренний бассейн, затем эта ссылка возвращается. .... Если вы пытаетесь уменьшить общий объем памяти вашего приложение выделяет, имейте в виду что интернирование строки имеет два нежелательные побочные эффекты. Во-первых, память, выделенная для интернированной строки объекты вряд ли будут выпущены пока среда CLR (CLR) завершается.

Значит ли это, что CLR сохраняет один внутренний пул для всех работающих приложений .net? Пример: если программа A создает строковый литерал "Test" и если другая программа пытается создать другой строковый литерал "Test", используется та же копия? Тот же вопрос относится и к JVM.

6
задан Sandbox 4 July 2011 в 08:20
поделиться