代码片段:
public class Demoo {
public static void main(String[] args) {
Integer s1=10,s2=10,s3=150,s4=150;
System.out.println(s1==s2);
System.out.println(s3==s4);
}
}
反编译后:
由上图可以看到
当我们给一个Integer赋予一个int类型的时候会调用Integer的静态方法valueOf。
下面是valueOf源码:
public static Integer valueOf(int i) {
//IntegerCache.low -128 IntegerCache.high 127
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}