public class Wrap
{
public static void main(String args[])
{
Integer a =1000;
Integer b =1000;
System.out.println(a == b); //line 7
Integer c = 10;
Integer d = 10;
System.out.println(c == d); // line 10
}
}
理解的部分:在第 7 行,它比较引用变量是否引用同一个对象。在第 10 行,它比较了包装对象所持有的实际原始数据。
我发现:如果值在 -128 到 127 之间,它将比较原始值或检查引用变量是否引用同一个对象
我的问题:为什么会这样?有什么逻辑吗?这个逻辑有用吗?或者它只是一种 oracle 的方式来说明 java 与其他语言的不同之处。