小白求解答
源码是这样的
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
我的理解是:如果传进来的参数是100,那么把100代入返回的代码则是
return IntegerCache.cache[100 + (-IntegerCache.-128)];
这样理解的话,那么返回的是cahce数组的下标[-28] , 则[-28]的下标对应的值就不是100;
请问这里返回值的代码为什么要这么写:return IntegerCache.cache[i + (-IntegerCache.low)];
请帮忙解答下,十分感谢。