码迷,mamicode.com
首页 > 其他好文 > 详细

equals与==的区别

时间:2016-09-01 18:45:28      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

术语来讲的区别:

1.==是判断两个变量或实例是不是指向同一个内存空间    equals是判断两个变量或实例所指向的内存空间的值是不是相同

2.==是指对内存地址进行比较    equals()是对字符串的内容进行比较

3.==指引用是否相同    equals()指的是值是否相同

 

我对这个一直比较蒙··

所以,找到别人的一些总结··

拼凑起来,目的是学会嘛

“==”等号操作是什么“==”或等号操作在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与==的区别

标签:

原文地址:http://www.cnblogs.com/fifiyong/p/5830681.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!