Непонимание внутренних строковых литералов?

Я не понимаю:

MSDN говорит

http://msdn.microsoft.com / en-us / library / system.string.intern.aspx

Следовательно, экземпляр литеральной строки с определенным значением существует только один раз в системе.

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

Это поведение по умолчанию (без стажера)? или с помощью метода Intern?

  • Если это значение по умолчанию, то почему я хочу использовать метод intern? (экземпляр уже будет один раз ...)?

  • Если НЕ по умолчанию: если я напишу 1000 раз эту строку:

    Console.WriteLine ("lalala");

1) получу ли я 1000 вхождений "лалала" в памяти? (без использования интерна ...)

2) будет ли "лалала" в конечном итоге Gc'ed?

3) "лалала" уже интернирована? и если это так, почему мне нужно будет «получить» его из пула, а не просто снова написать «лалала»?

Я немного запуталась.

5
задан Royi Namir 1 January 2012 в 07:49
поделиться