看Arrys.equals()源码的时候,第一行是判断两个参数是否==,突然很好奇,如果==号两边都是null这种写法是否可行,可行的话结果是true还是false?
public static boolean equals(int[] a, int[] a2) {
if (a==a2)
return true;
if (a==null || a2==null)
return false;
int length = a.length;
if (a2.length != length)
return false;
for (int i=0; i<length; i++)
if (a[i] != a2[i])
return false;
return true;
}
二话不说,写一行代码验证下
public class Test {
public static void main(String[] args) {
if(null == null) {
System.out.println("null等于null");
} else {
System.out.println("null不等于null");
}
}
}
结果如下,所以null==null这种写法不会报错的(虽然没意义),而且结果为true
null等于null