Получи случайную криптовалюту за регистрацию!

#вопросы_с_собеседований Что такое 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.