Intern — Senior
81
Сравнение строк в Java с учётом интернирования и конкатенации
任务条件
Определите, какие из приведённых ниже сравнений строковых ссылок вернут 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 на интернирование.