Имеется следующий код:
String s = new String("1");
s.intern();
String s2 = "1";
System.out.println(s == s2);
String s3 = new String("1")+new String("1");
s3.intern();
String s4 = "11";
System.out.println(s3 == s4);
Вывод кода выше:
false
true
Я знаю, что s
и s2
- разные объекты, поэтому результат оценивается как false, но второй результат равен true. Может ли кто-нибудь сказать мне разницу?