黑马程序员技术交流社区

标题: 对象与变量的比较 [打印本页]

作者: danmo    时间: 2014-8-19 18:58
标题: 对象与变量的比较
中对象与变量的比较是经常用到“==”和“equals”两种方法来比较,请教,两种方式有什么区别?
作者: 冒牌高手    时间: 2014-8-19 21:40
==比较的是对象引用的地址值,equals比较的是两者的内容
作者: Kikyou    时间: 2014-8-19 22:25
equals比较是看对象的equals()方法比较的标准是什么
作者: 柠萌不    时间: 2014-8-19 23:35
==比较地址值,equals在重写后可比较内容
作者: Justfeeling    时间: 2014-8-19 23:49
==比较的是内存地址,equals比较的是相同,也就是样子一样。
作者: 子阳zy    时间: 2014-8-20 00:07
含义不同,楼上说的很对。
作者: 215041631    时间: 2014-8-20 00:15
EQUALS用来比较对象是否相等,==还可以比较基本数据类型吧 。我觉得
作者: 单线程xia    时间: 2014-8-20 02:52
日经贴。。。。。
作者: Huberry    时间: 2014-8-20 04:41
每天都有这个问题貌似 {:3_50:}
作者: 依然超级赛亚人    时间: 2014-8-20 07:27
上课老师给的总结:
==和equals()的区别?
                        A:==
                                基本类型:比较的是基本类型的值是否相同
                                引用类型:比较的是对象的地址值是否相同
                        B:equals()
                                默认情况下,比较对象的地址值。
                                如果重写了该方法,那么,什么作用请看自己的代码
作者: danmo    时间: 2014-8-20 10:42
谢谢 楼上的简答
作者: 月夜小楠    时间: 2014-8-20 12:45
路过。。。
作者: 碎流    时间: 2014-8-20 12:59
==可以用来比较基本数据类型.....比如   a == b; 这是比较数值
==和equals在对象中的话,==比较的是地址值(就好像两个人是不是同一家,长的像不像没有关系).而equals比较的是两者的内容(比如两个人长的像就好了,不管他是不是一家人).
作者: 笑脸迷人    时间: 2014-8-20 13:47
分两部分:
1、比较双方是基本数据类型:==和equals方法是等价的(object类中的equals方法就是使用==进行判断的!)
2、比较双方是引用数据类型:          解读:Person p1=new Person("Peter");
           new Person("Peter"):在内存中开辟一空间(有new就有新空间),存储Peter这个实例对象;然后将Peter的内存地址值赋值给p1;也就是说p1存储的是内存地址值!
           当Person p2=new Person("Peter");
          那么p1和p2代表的就是2个内存地址值,p1==p2显然就是错误的(很多人理解==说比较的是内存地址值,也没错,但我认为==就是比较左右两边的数值是否一样的一个判断符,和数学里的=号是一个意思)
           equals比较的是什么,就要看Person类里是否复写Object类的equals方法,比如在Person类中复写了equals方法并用Person的名字来判断两个Person是否相等,那么p1.equals(p2)当然就是true了         

           简而言之:
         若是对象所在的类或是其父类(不包含object类)没有复写object类中的equals方法;那么==和equals就是等价的;否则就看对象所在类中equals方法是如何复写的!


作者: 男人你得有范    时间: 2014-8-20 15:37
赞同一楼
作者: Ezreal    时间: 2014-8-20 23:20
总结equals和"=="的关系
http://bbs.itheima.com/thread-136188-1-1.html
(出处: 黑马程序员IT技术论坛)
  可以看看




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2