Integer int1 = 120, int2 = 120, in3 = 140, int5 = 200;對象
System.out.println(int1 == int2);變量
System.out.println(int3 == int5);數據類型
結果 int1==int2 true方法
int3==int5 false;數據
解釋:首先四個都是Integer 對象,基本數據類型和包裝類有自動裝箱拆箱機制static
在賦值的時候回自動調用 valueof() 方法new
public static Integer valueOf(int i) { return
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
若是整形變量的值介於 -128 到 +127 之間 ,若是常量池中有這樣的Integer 對象那麼就取改對象,不會新建對象