这个可以简单的解释下,首先Integer和int是不一样的,一个是包装类,一个不是,而它们的表示也不一样。
public static Integer valueOf(int i) {
2 assert IntegerCache.high >= 127;
3 if (i >= IntegerCache.low && i <= IntegerCache.high)
4 return IntegerCache.cache[i + (-IntegerCache.low)];
5 return new Integer(i);
6 }
可以看看Integer的处理,当大于127的时候就不一样了,所以楼主上面100的时候和200的时候就不一样了,希望有用 |