两者的意义
==:比较的的变量内存中的地址,就是引用是否相同
equals():比较的是两个对象是否相等,就是数值是否相同
看图说明

总结
有些类(像String、Integer等类)对equals进行了重写,但是没有对equals进行重写的类(比如我们自己写的类)就只能从Object类中继承equals方法。默认的实现equals与==是等效的。
额外拓展
hashcode()主要是为了查找的快捷性,对对象生成一个哈希值。这个方法可以被重写。
hashcode()和equals()的关系
1.equals() 用来比较该类的两个对象是否相等,而hashCode() 则根本没有任何作用。
2.equals()比较两个对象时返回true,那么它们的hashCode()值一定相同。
3.如果哈希冲突场景中,两个对象hashCode()相等,它们值并不一定相等。
网友评论