当前位置: 首页 > 面试题库 >

在java中==和equals的区别?

百里飞捷
2023-03-14
问题内容

java中==和equals的区别?


问题答案:
  • .equals(…) 只会比较所写的内容进行比较,不会多也不会少。
  • 如果一个类没有覆盖equals方法,则默认为equals(Object o)覆盖了该方法的最接近的父类的方法。
  • 如果没有父类提供重写,则它默认为最终父类Object中的方法,因此你只能使用该Object#equals(Object o)方法。根据对象API,这与==; 也就是说,当且仅当两个变量都引用相同的对象且引用相同且相同时,它才返回true 。因此,你将测试对象相等性而不是功能相等性。
  • hashCode如果你要进行覆盖,请务必记住覆盖,equals以免“违反合同”。根据API,如果hashCode()两个对象的方法显示等效,则从方法返回的结果必须相同equals。反过来并不一定是真的。


 类似资料:
  • 问题内容: 我知道已经解决了这个问题,但是我在SO上看到了不一致的论点。 所以,如果我有: 我得到 FALSE 。 据我了解,这是因为和是对同一对象()的两个不同引用。 所以我会有类似的东西: 现在,如果我只想比较两个字符串的 内容 ,我将使用 这是否意味着如果两个引用指向同一个对象,JVM就会简单地返回?因此,它不是在逐个字符地进行比较吗? 谢谢 编辑 拿着电话。感谢您指出优先顺序!!! 当我将

  • 对于基本类型,==比较的是值; 对于引用类型,==比较的是地址; equals不能用于基本类型的比较; 如果没有重写equals,equals就相当于==; 如果重写了equals方法,equals比较的是对象的内容;

  • 本文向大家介绍Java中==与equals的区别小结,包括了Java中==与equals的区别小结的使用技巧和注意事项,需要的朋友参考一下 s2==s3的运算结果为:false  s1==s3的运算结果为:true  s2.equals(s3)的运算结果为:true  总结: == 与 equals()比较的内容是不同的,equals()方式是String类中的方法,它用于比较两个对象引用所指的内

  • 问题内容: 我今天换了讲师,他对我说了奇怪的代码。(他说最好用,当我问为什么时,他回答“因为是!”) 所以这是一个例子: 而不是我习惯的: 两者之间有什么区别。为什么他的方式(使用)更好? 通过快速搜索发现了这一点,但我无法真正理解该答案: 问题答案: 在Java中,总是只比较两个引用(对于非原始元素),即,它测试两个操作数是否引用同一对象。 但是,该方法可以被覆盖-因此两个不同的对象仍然可以相等

  • 问题内容: 鉴于这种: 输出为: 这是为每个对象提供false,但每个String对象的哈希码都相同。为什么会这样呢? 问题答案: 确实比较 对象的 真实相等性(我的意思是-两个引用都指向同一个对象),而不是它们的内容,而比较内容(至少对于String)。 并指向不同的对象。 还要注意,如果对象相等,则它们的哈希必须相同,但是如果哈希码相同,则并不意味着对象相等。

  • 问题内容: 我知道将比较对象的值,’==’运算符将检查变量是否指向相同的内存。 我不了解如何比较对象的值,例如: 因此,如果使用,它将比较每个对象中的每个属性吗? 如果我们在谈论字符串呢?使用equals()和运算符“ ==”,我们是否仍然需要覆盖equals()? 问题答案: 不,如果您不覆盖类中的- method,则与相同。请参阅此文档: 类Object的equals方法在对象上实现了最有区别