当前位置:网站首页>equals 方法

equals 方法

2022-07-07 17:52:00 whiteye太白

“==” 与 equals的区别

“==”对于基本类型,比较的是值;对于引用类型比较的是地址。

Object类中equals的默认实现等价于“==”,即比较引用类型的地址。

Java中很多类(如String、Date、Long、HashMap和File类等)都重写了Object类的equals方法,导致其和“==”不等价。

String类中重写的equals是先用“==”比较两个引用类型的引用地址,相同则返回true,引用地址不同再进行字符串比较。

重写equals方法时必须重写hashCode方法

hashCode方法实际上必须要完成的一件事情就是,为该equals方法认定为相同的对象返回相同的哈希值。

Object类中的equals方法区分两个对象的做法是比较地址值,即使用“==”。而我们如若根据业务需求改写了equals方法的实现,那么也应当同时改写hashCode方法的实现。否则hashCode方法依然返回的是依据Object类中的依据地址值得到的integer哈希值。

原网站

版权声明
本文为[whiteye太白]所创,转载请带上原文链接,感谢
https://blog.csdn.net/demo_yo/article/details/125592893

随机推荐