Object的equals()方法比较的是对象在内存中的地址是否相同,只有引用同一块地址的时候,才会为true,例如
String a1 = "hello";String a2 = "hello";
a1.equals(a2);结果为true
Person p1 = new Person();
Person p2 = new Person();
p1.equals(p2);结果为false,因为地址并不同
Objects中的equals方法,源代码如下:
可以比较两个基本数据类型的数值是否相等,而equals方法依旧调用的是Object对象中的方法,比较俩个Object对象的地址值是否引用的同一块地址,如果不同则为false
Objects中还有一个deepEquals(Object x,Object y)的方法,此方法的功能比较强大,不仅可以比较数值是否相同,而且还可以比较两个对象中的内容是否相同,如果相同即为true,源代码如下:
e1 instanceof Object[]:判断e1的类型是否是Object的数组类型。
举例如下:
String i1[] = new String[]{"1","2","4"};
String i2[] = new String[]{"1","2","4"};
String i3[] = i2;
Objects.deepEquals(i1,i2);结果为true.