==和equals区别?equals和hashcode()方法关系?

==和equals区别:

==:比较引用数据类型判断两个变量或实例是否指向同一个内存地址,是对内存地址进行比较,指引用是否相等,比较基本数据类型时比较值;

equals如果没用重写object中equals方法比较内存地址是否相等和==用法相同,重写object中equals方法是判断两个变量或实例所指向的内存空间的值是否相等,例如在String类型中,是对字符串的内容进行比较,指的是值是否相等。

equals和hashcode()方法关系:

equals()判断两个变量是否相等,如果相等则返回true,否则返回false。 hashcode()方法返回一个int数,在Object类中的默认实现是“将该对象的内部地址转换成一个整数返回”。如果equals()判断两个变量相等,则他们的hashcode()值也相等;如果两个变量的hashcode()值相等,则他们equals()判断不一定相等。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容