int x = 10;
int y = 10;
Integer x1 = new Integer(10);
Integer y1 = new Integer(10);
System.out.println(x == y);
System.out.println(x1 == y1);
第一个sop将打印为true,而第二个将打印为false。实际问题是什么?
答案 0 :(得分:2)
答案 1 :(得分:2)
第二个是比较Object Id。因为每个对象都有一个唯一的Id,所以它返回false。
答案 2 :(得分:0)
第一次打印为true,因为int x和y包含10的相同位模式。
在第二种方法中,x1和y1都是整数类型的不同对象引用变量,因此它们指向内存中的不同对象,这就是为什么在第二次使用中你会得到错误。
如果要检查两个Integer的相等性,可以使用
x1.equals(y1)
它将返回true。