基础数据类型

Integer.valueOf

调用 Integer.valueOf 时-128~127 的对象被缓存起来。

所以在此访问内的 Integer 对象使用==和 equals 结果是一样的。

如果 Integer 的值一致,且在此范围内,因为是同一个对象,所以==返回 true;但此访问之

外的对象==比较的是内存地址,值相同,也是返回 false。

public static Integer valueOf(int i) {

   if (i >= IntegerCache.low && i <= IntegerCache.high)

   return IntegerCache.cache[i + (-IntegerCache.low)];

   return new Integer(i);

}

你可能感兴趣的:(基础数据类型)