Встречается на собеседованиях • сегодня
В чем разница между написанием строк в "" и вызовом new String
Строковые литералы в двойных кавычках ("") автоматически интернируются JVM и помещаются в пул строк. При повторном использовании того же литерала возвращается ссылка на существующий объект из пула.
new String создает новый объект в куче, даже если такая строка уже есть в пуле. Это менее эффективно по памяти.
Пример:
java
String s1 = "hello"; // из пула строк
String s2 = "hello"; // та же ссылка из пула
String s3 = new String("hello"); // новый объект в куче
System.out.println(s1 == s2); // true (одна ссылка)
System.out.println(s1 == s3); // false (разные объекты)Рекомендуется использовать литералы, если не требуется явно создавать новый объект.

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