Встречается на собеседованиях • сегодня
Что произойдет при создании строки, занимающей много памяти, идентичной ранее созданной
В Java строки хранятся в пуле строк (String Pool). При создании строки через литерал (String s = "text") JVM сначала проверяет пул на наличие такой строки. Если строка найдена, возвращается ссылка на существующий объект.
Если строка создается через new String(), всегда создается новый объект в куче, даже если такая строка есть в пуле. Однако можно вручную добавить строку в пул через intern().
Пример:
java
String s1 = "largeString"; // добавляется в пул
String s2 = "largeString"; // используется существующая строка из пула
String s3 = new String("largeString"); // новый объект в куче
String s4 = s3.intern(); // ссылка на строку из пулаТаким образом, при создании идентичной строки:
- Литерал: не будет дублирования памяти
new String(): создаст новый объект в кучеintern()вернет ссылку на существующую строку

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы