String str1 = "hello";
String str2 = new String("hello");
System.out.println(str1.equals(str2));//这里为true
int[] arr1 = {1,2,3};
int[] arr2 = {1,2,3};
System.out.println(arr1.equals(arr2));//那为什么这里为false?这不是相等的数组嘛?
Person p1 = new Person("zhangsan");
Person p2 = new Person("zhangsan");
System.out.println(p1.equals(p2));//这里也为false?
equals方法在各个类的实现的时候需要重写 ;各类实现的方法并不一样;
数组和对象里调用equals时, 比较的是数组的引用和对象引用的哈希码值, 这两组引用均指向不同的对象,所以返回false
|