Integer
samples:
Integer x = 500;
Integer y = 500;
System.out.println(x == y + 0); //true
System.out.println(x == y); //false
Integer x = 127;
Integer y = 127;
System.out.println(x == y + 0); //true
System.out.println(x == y); //true
1.Integer + int :autounboxing
This is equivalent to :Integer.intValue() + int
2. Because of this code in Integer
1 public static Integer valueOf(int i) { 2 if(i >= -128 && i <= IntegerCache.high) 3 return IntegerCache.cache[i + 128]; 4 else 5 return new Integer(i); 6 }
Explanation:
Integer integer1 = 127
is a shortcut for Integer integer1 = Integer.valueOf(127)
, and for values between -128 and 127 (inclusive), the Integers are put in a cache and returned multiple times, while higher and lower numbers generate new Integers each time.