首页 > 其他 > 详细

"==" 与 “equals”

时间:2017-05-25 12:42:53      阅读:278      评论:0      收藏:0      [点我收藏+]

“==”:

  “==”或等号操作在Java编程语言中是一个二元操作符,用于比较原生类型和对象。(操作符不支持重载overloading)

  “==”对比两个对象基于内存引用,如果两个对象的引用完全相同(指向同一个对象)时,“==”操作将返回true,否则返回false。

“equals”:

  用于检查两个对象的相等性。

  默认的equals方法实现是与“==”操作一样的,基于业务需求重写equals方法是最好的实践之一,同样equals与compareTo保持一致也不足为奇,以至于存储对象在Treemap或treeset集合中时,将使用compareTo方法检查相等性,行为是一致的。

 

区别:

  ==与equals的主要区别是:==常用于比较原生类型,而equals()方法用于检查对象的相等性。

  ==的行为对于每个对象来说与equals()是完全相同的,但是equals()可以基于业务规则的不同而重写(overridden )。

字符串的==和equals对比

  如果==和equals()用于比较对象,当两个引用地址相同,==返回true。而equals()可以返回true或者false主要取决于重写实现。最常见的一个例子,字符串的比较,不同情况==和equals()返回不同的结果。

  String类型重写了equals(),比较的是两个字符串的内容。

==与equals在对象之间的对比

  当你比较的两个引用指向的对象是Object的类型的时候,那么你看到的结果和==是一致的,因为默认的equals方法实现仅仅比较的内存地址。

 

总结:

  1. 使用==比较原生类型如:boolean、int、char等等,使用equals()比较对象。
  2. ==返回true如果两个引用指向相同的对象,equals()的返回结果依赖于具体业务实现
  3. 字符串的对比使用equals()代替==操作符

  

"==" 与 “equals”

原文:http://www.cnblogs.com/yl-saber/p/6902772.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!