Why Integer Object will behave like this?
Integer i1 = 127; Integer i2 = 127; System.out.println(i1==i2); System.out.println(i1.equals(i2)); Integer i1 = 128; Integer i2 = 128; System.out.println(i1==i2); System.out.println(i1.equals(i2));
O/P
true , true, false ,true
Have you wondered by seeing the output, it should be false, true, false, true right?
But if you run the code it gives the out put as true, true, false, true.
why because Integer object have cache values between -128 to 127.
So first it will be true in the case of 127 as it is in the range of cached values.
But latter case if false as 128 wont fall under the cached values.
http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#valueOf%28int%29
Categories: Java
Comments (0)
Trackbacks (0)
Leave a comment
Trackback