Java 中==和 equals 的区别, equals 和 hashCode 的区别

==操作符用来比较两个基本类型变量时,比较的是值;用来比较引用类型变量时,比较的是引用的地址

equals方法是基类Object的方法,用于比较两个对象的内容是否相同,Object类中equals方法的默认实现使用的==操作符比较,实际开发过程中,我们会重写equals方法,重新定义比较规则

当涉及到像HashMap等与哈希表结构相关的一些类时,会使用到hashCode方法

默认的hashCode实现一般是内存地址对应的数字,所以不同的对象,hashCode()的返回值是不一样的

equals(object)相同时,hashCode()的返回值也要尽量相同,当equals(object)不相同时,hashCode()的返回没有特别的要求,但是也是尽量不相同以获取好的性能

猜你喜欢

转载自blog.csdn.net/he3527/article/details/77618682
今日推荐