I know this has been covered but I\'ve seen inconsistent arguments here on SO.
So if I have:
String a = \"apple2e\";
String b = \"apple2e\";
System.
a and b are two different references to the same object -- PROBABLY
"a==b? " + a
evaluates to the string "a==b? apple2e" which is definitely not the same (either == or equals) as the string "apple2e"
So your code:
System.out.println("a==b? " + a == b);
is just testing if "a==b? apple2e" is the same as "apple2e" which it is not (no matter how you define same).