2019-09-10 16:42:39 卢浮宫 版权声明:本文为站长原创文章,转载请写明出处
Integer i = 366;
Integer j = 366;
i == j 返回false
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
其中IntegerCache是定义的缓存区域,当一个Integer数值在-128 到 127之间就会放在这个缓存区中,取值也是从这里取。
故而就有以下操作了
Integer i = 366;
Integer j = 366;
i == j 返回false
Integer m = 66;
Integer n = 66;
m == n 返回true
所以比较Integer还是要使用equals()