最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

大厂面试题:请你说说hashCode()和equals()的区别,为什么重写equals()就要重写hashcod()

XAMPP新闻 admin 68浏览 0评论

一、得分点

hashCode()用途,equals()用途,hashCode()、equals()约定

二、标准回答

hashCode()方法的主要用途是获取哈希码,equals()主要用来比较两个对象是否相等。二者之间有两个约定,如果两个对象相等,它们必须有相同的哈希码;但如果两个对象的哈希码相同,他们却不一定相等。也就是说,equals()比较两个对象相等时hashCode()一定相等,hashCode()相等的两个对象equqls()不一定相等。

三、加分回答

Object类提供的equals()方法默认是用==来进行比较的,也就是说只有两个对象是同一个对象时,才能返回相等的结果。而实际的业务中,我们通常的需求是,若两个不同的对象它们的内容是相同的,就认为它们相等。
鉴于这种情况,Object类中equals()方法的默认实现是没有实用价值的,所以通常都要重写。由于hashCode()与equals()具有联动关系,所以equals()方法重写时,通常也要将hashCode()进行重写,使得这两个方法始终满足相关的约定。

转载请注明:XAMPP中文组官网 » 大厂面试题:请你说说hashCode()和equals()的区别,为什么重写equals()就要重写hashcod()

您必须 登录 才能发表评论!