- ==:对于基本类型,比较的是内容;对于引用类型,比较的是地址
- equals:在Object中,比较的是地址,不过可以根据业务,修改equals方法,让其支持内容比较
- hashcode:基于内存地址计算得出的整型变量值
重写了euqls方法的对象必须同时重写hashCode()方法
== | euqals | hascode | |
---|---|---|---|
区别 | 比较两个对象的地址是否相等 | 支持重写,未重写前和==一样,可重写为比较两个对象的内容是否相等 | 支持重写,未重写前,根据地址计算哈希值,可重写为根据内容计算哈希值 |
联系 | equals相等,hascode一定相等 | 若重写,两者都重写,即重写后,euqals比较内容,hashcode根据内容计算哈希值 | hascode相等,equals不一定相等 |