【发布时间】:2011-12-24 11:08:56
【问题描述】:
为什么下面的代码打印"Different."?
boolean[][] a = { {false,true}, {true,false} };
boolean[][] b = { {false,true}, {true,false} };
if (Arrays.equals(a, b) || a == b)
System.out.println("Equal.");
else
System.out.println("Different.");
【问题讨论】:
-
我总是先测试
a == b,或者根本不测试。如果equals为真,则第二个表达式应始终为真。 -
无论如何,标准实现都是从那个检查开始的,所以我个人会忽略它。
-
应该只表示两者都给假。
-
@PeterLawrey 实际上,你的意思是如果 == 为真,那么 equals 应该为真。