【发布时间】:2016-02-26 07:17:43
【问题描述】:
我有这个代码:
int i = 128;
Integer a = i;
Integer b = i;
System.out.println("a==i " + (a == i)); // true
System.out.println("b==i " + (b == i)); // true
System.out.println("a==b " + (a == b)); // false
System.out.println("equals ->" + a.equals(i)
+ b.equals(i)
+ a.equals(b)); // true, true, true
然后我将变量 i 更改为 127:
int i = 127;
Integer a = i;
Integer b = i;
System.out.println("a==i " + (a == i)); // true
System.out.println("b==i " + (b == i)); // true
System.out.println("a==b " + (a == b)); // true !!! look here
System.out.println("equals ->" + a.equals(i)
+ b.equals(i)
+ a.equals(b)); // true, true, true
我不明白,为什么“真”变成了“假”?
【问题讨论】:
标签: java