Integer初始赋值时调用,valueOf
方法创建
Integer
对象的时候,如果数值在
[-128,127]
之间,便返
回指向
IntegerCache.cache中已经存在
的对象的引用;否则创建一个新的
Integer
对象。
例:
public class Main {
public static void main(String[] args)
{
Integer i1 = 100;
Integer i2 = 100;
Integer i3 = 200;
Integer i4 = 200;
System.out.println(i1==i2); System.out.println(i3==i4);
}
}
运行结果
true
false
上面的代码中
i1
和
i2
的数值为
100
,因此会直接从
cache
中取已经存在的对象,所以
i1
和
i2
指向的是同一 个对象,而i3
和
i4
则是分别指向不同的对象。