Integer i=127, i1=127;这里实际上就是这样:Integer i = Integer.valueOf(127); Integer i1 = Integer.valueOf(127); 然后再看一下valueOf()的源码,就是下面这段代码:
- public static Integer valueOf(int i) {
- if (i >= IntegerCache.low && i <= IntegerCache.high)
- return IntegerCache.cache[i + (-IntegerCache.low)];
- return new Integer(i);
- }
复制代码
这里它用了缓存原理,先不用管它。low代表-128,high=127. 其中的cache【】是一个静态的Integer类型的数组,当i在【-128,127】这个区间时,直接返回静态数组中的一个Integer对象。当i不满足【-128,127】这个区间时,才重新new一个i值得Integer对象。 |