我在Java测试中遇到了这个问题,我必须将值分配给a
和b
,因此该表达式的计算结果为true:
(a<=b && b<=a && a!=b)
可悲的是,我不知道答案是什么。
答案 0 :(得分:80)
这里有一个简单的伎俩。
你不能只考虑布尔逻辑。使用它,这个组合...
a
小于或等于b
和b
小于或等于a
和a
不等于b
...永远不会返回true
。
但是,!=
运算符如果其操作数是对象,则会对引用进行比较。
因此,以下内容将返回true
:
Integer a = 1;
Integer b = new Integer(1);
System.out.println(a<=b && b<=a && a!=b);
这里发生的是:a
作为对象引用不等于b
作为对象引用,当然它们保持相等的整数值。