这个问题其实很简单, 因为在(x.equals(y) == true) 这个方法中,调用的equals方法是属于Object 对象的
这个方法比较的就是 hashcode值
而String 类的 .equals()方法是重写了 Object 父类的 .equals()方法和hashcode方法 已经比较的不是hashcode值了 所以才会出现上述情况
而一般对象的.equals()方法 除非是重写了父类Object.equalse()方法 不然比较的都是hashcode值
与‘==’的性质是一样的 |
|