Некоторое время назад я интернировал () редактирование всех строк, поступающих из файлов классов (для анализатора файлов классов). Intern () заставил программу использовать меньше памяти (в данном случае не будет, как указывали другие), но значительно замедлил работу программы (я думаю, что для анализа всего файла rt.jar потребовалось 4 секунды, и это изменение положило его более 8 секунд). Рассматривая его в то время (был JDK 1.4, я думаю), код intern () довольно уродлив и медленнее, чем, вероятно, должен быть.
Если бы я подумал о вызове intern () в своем коде, я сначала профилировал бы его без intern (), а затем профилировал его с помощью intern () для памяти и скорости и увидел, какой из них «хуже» для изменения.