美文网首页
JAVA基础

JAVA基础

作者: emptyD | 来源:发表于2017-03-08 09:04 被阅读7次

    ==

    “==”或等号操作在Java编程语言中是一个二元操作符,用于比较原生类型和对象。就原生类型如boolean、int、float来说,使用“==”来比较两者,这个很好掌握。但是在比较对象的时候,就会与equals()造成困惑。“==”对比两个对象基于内存引用,如果两个对象的引用完全相同(指向同一个对象)时,“==”操作将返回true,否则返回false。

    equals()

    equals()方法定义在Object类里面,根据具体的业务逻辑来定义该方法,用于检查两个对象的相等性。例如:两个Employees被认为是相等的如果他们有相同的empId的话,你可以在你自己的domain对象中重写equals方法用于比较哪两个对象相等。equals与hashcode是有契约的(无论什么时候你重写了equals方法,你同样要重写hashcode()方法),默认的equals方法实现是与“==”操作一样的,基于业务需求重写equals方法是最好的实践之一,同样equals与compareTo保持一致也不足为奇,以至于存储对象在Treemap或treeset集合中时,将使用compareTo方法检查相等性,行为是一致的。

    equals与==区别

    1.== 常用于比较原生类型,equals常用于比较对象类型

    2.==与equals用于比较对象类型,当引用地址不相同时,==返回false而equals()返回值取决于重写的实现。可以是true也可以是false.

    相关文章

      网友评论

          本文标题:JAVA基础

          本文链接:https://www.haomeiwen.com/subject/yyzvgttx.html