1
JavaAdvanced#puzzle#exceptions
s1 and s2 both refer to the same interned literal in the String pool, so s1 == s2 is true. s3 is a new heap object, so s1 == s3 compares different references and is false.
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
System.out.println(s1 == s2); // true
System.out.println(s1 == s3); // false