Что касается вопроса 2: @dasblinkenlight уже дал хороший ответ на это.

с 1

String a1 = "I Love" + " Java";
String a2 = "I Love " + "Java";
System.out.println( a1 == a2 ); // true

String b1 = "I Love";
b1 += " Java";
String b2 = "I Love ";
b2 += "Java";
System.out.println( b1 == b2 ); // false

В первом случае я понимаю, что это конкатенация двух строковых литералов, поэтому результат «Я люблю Java» будет интернирован, что даст результат true. Однако я не уверен насчет второго случая.

вопрос 2

String a1 = "I Love" + " Java"; // line 1
String a2 = "I Love " + "Java"; // line 2

String b1 = "I Love";
b1 += " Java";
String b2 = "I Love ";
b2 += "Java";
String b3 = b1.intern();
System.out.println( b1 == b3 ); // false

Выше возвращается false, но если я закомментирую строки 1 и 2, он возвращает true. Почему это?

Ответы на вопрос(0)

Ваш ответ на вопрос