常用的Integer初始化方式有:
Integer a = 10;
Integer b = Integer.valueOf(10);
Integer c = Integer.valueOf("10");
// Integer d = new Integer(10);废弃
//a==b,a==c
直接a==10等效于Integer.valueOf(10);
@IntrinsicCandidate
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
如上,当值在-128到127时,返回的是同一个对象。所以比较数字要用equals方法。