#вопросы_с_собеседований Что такое string-pool? В чем отличие | Senior Java Developer
#вопросы_с_собеседований
Что такое string-pool? В чем отличие cоздания строки через new от литерала? Что такое String.intern()?
string-pool — структура в памяти, хранящая массив всех строк-литералов программы.
String.intern(), соответственно, вернет строку из пула, при наличии таковой. Полезно при сравнениях вида:
new String("hello").intern() == new String("hello").intern()
Т.к. без интернирования пришлось бы сравнивать строки через equals, что может быть медленнее при наличии длинных строк. В данном случае возвращается ссылка на один и тот же объект строки из пула, и проверка проходит с true.