Possible Duplicate:
Why is == true for some Integer objects?
I have code fragment
Integer i1 = new Integer(a);
Integer i2 = new Integer(b);
if (i1 == i2)
{
// ...
}
When ‘a’ and ‘b’ are small numbers (e.g. 0-20) then i1 == i2 return true.
But when ‘a’ and ‘b’ are great then i1 == i2 rerun false!
I don’t understand, how can it be
Read more about pool of integer values.
If ‘a’ and ‘b’ are between -127 and 128 then i1 == i2 return true
else i1 == i2 return false
Better use method .equals comparison.
if (i1.equals(i2))
{
}