Reputation: 55
I'm trying to understand the String concatenation process. The below initialized variables (a
, b
, str
) are all compile time constants.
When concatenating the compile time constants and comparing it with the equivalent string literals, it should return true
, right?
But here it returns true
for primitive value and false
for a Wrapper class (Integer) variable.
I've gone through a few other SO posts, but I don't get this.
What's happening here?
final int a = 0;
final Integer b = 0;
final String str = ":ZERO";
String str1 = a + str;
String str2 = b + str;
System.out.println(str1 == "0:ZERO"); // true
System.out.println(str2 == "0:ZERO"); // false
Upvotes: 1
Views: 149