Народ, внесите ясность. Где хранятся строки, создаваемые через оператор "="? Если они создаются через new, то они попадают в HashSet, хранимый в PermGen (т.н. String pool). Получается, что неинтернированные строки пушатся в стек?
При использовании литерала, JVM сначала ищет его в пуле. Если находит просто возвращает, если не находит - интернирует и возвращает