String-Verkettung und -Vergleich führen zu unerwartetem Ergebnis bei println-Anweisung

Ich konnte das folgende Verhalten nicht herausfinden,

String str1= "abc";
String str2 = "abc";

System.out.println("str1==str2 "+ str1==str2);
System.out.println("str1==str2 " + (str1==str2))

Output für die obige Anweisung lautet wie folgt:

falsc

str1 == str2 true

Warum passiert dies? Warum ist die Ausgabe nicht wie folgt:

str1 == str2 true

str1 == str2 true

Antworten auf die Frage(10)

Ihre Antwort auf die Frage