Back to tasksGet help with live coding in real time with Sobes Copilot
Intern — Senior
26
Сравнение строк в Java с учётом интернирования и конкатенации
Task condition
Определите, какие из приведённых ниже сравнений строковых ссылок вернут true. При ответе учитывайте, как компилятор обрабатывает строковые литералы, механизм интернирования и особенности конкатенации строк в Java.
var a = "{ между скобок }";
final String b = "{ между ";
String c = "скобок }";
String d = "{ между скобок }";
String e = new String("{ между скобок }");
System.out.println(a == d); // №1
System.out.println(a == b + c); // №2
System.out.println(a == b + "скобок }"); // №3
System.out.println(a == e); // №4
Для каждого сравнения объясните, почему полученный результат таков: является ли сравниваемый объект тем же самым объектом в пуле строк, создаётся ли новый объект в результате конкатенации, и как влияет оператор new на интернирование.