Integer i1 = 127;
Integer i2 = 127;
Integer i3 = 128;
Integer i4 = 128;Which comparison yields `true`?
Integer i1 = 127;
Integer i2 = 127;
Integer i3 = 128;
Integer i4 = 128;Which comparison yields `true`?
i1 == i2
i3 == i4
i1 == i3
i2.equals(i4)
i1.equals(i2)
Correct answer
i1 == i2
Java caches `Integer` objects for values between -128 and 127 inclusive. Thus `i1 == i2` refers to the same cached object, so `true`. For 128, new objects are created, so `i3 == i4` is `false`. `.equals()` compares values and is `true` for both.