这个'如果'用三个同时表达式在Java中进行评估

时间:2015-09-24 10:51:14

标签: java

我在Java测试中遇到了这个问题,我必须将值分配给ab,因此该表达式的计算结果为true:

(a<=b && b<=a && a!=b)
可悲的是,我不知道答案是什么。

1 个答案:

答案 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作为对象引用,当然它们保持相等的整数值。