黑马程序员技术交流社区
标题:
==和equals方法究竟有什么区别?
[打印本页]
作者:
付鹏
时间:
2012-3-8 23:24
标题:
==和equals方法究竟有什么区别?
我搞不懂这两个有什么区别。去网上搜了搜看了看还是看不懂, 谁理解的透彻 能给我用白话解释解释吗?
作者:
王杰
时间:
2012-3-8 23:38
equals方法是objec类中的一个方法,所有的类都有这一方法。他是一个方法。而“==”是一个比较运算符!
在不对equals进行覆盖的情况下,equals和“==”实现的功能是一样的。
但是,一般在应用时,我们会对equals方法进行覆盖,让它提供其他与比较相等相关的功能。
作者:
廖艺聪
时间:
2012-3-8 23:39
equals用了引用数据类型、==用于基本数据类型
作者:
王利强
时间:
2012-3-8 23:47
对于String,==用于比较两个String是否指向同一个地址空间;equal用于对String的值进行比较,它是逐个字符来比较ascii码值的,当然对于大小写字母它与进行区分
作者:
silence
时间:
2012-3-8 23:52
equals()方法是Object类方法,所以所有的类自然而然的继承了equals方法。Object类中的equals方法是对象地址,如果是同一个对象返回值为true,否则是false;如果其他类没有改写equals方法,那么默认的还是比较对象的地址。在String中,equals方法被重写,equals比较的是字符串的实际值,而不是比较对象的地址。我们初学Java的人,往往‘喜欢’用“==”来比较String类型的对象。
记住只有是比较String类型的用equals方法就可以了。
作者:
许圣建
时间:
2012-3-9 00:00
标题:
equals()应按需覆写
本帖最后由 许圣建 于 2012-3-9 00:02 编辑
首先,==是个运算符,在java中运算符不能被覆写,所以==只有一个含义,比较栈中二者之value,引用变量也是变量,当然比较地址值。
接着,equals()方法定义在上帝之中,上帝谁会创建对象去用呢,就像接口的方法只是方法的接口一样,肯定要继承,这时候你就要注意了,你究竟希望用到怎样的equals()方法在你的类之中,如果你不覆写,你的父类也没有覆写过,那么你直接继承的就是父类的比较二者之值的(等同于==),所以很多java自己的类都实现了通用的equals(),但并不排除你自己有自己的计划,
所以
按需覆写
才是equals()的使用方法。
作者:
a504079589
时间:
2012-3-9 00:46
equals()方法是引用类型 是Objec中的方法,每个类都有默认的equals()方法,在不被重写的情况下,默认的是比较对象的地址值,被重写后是比较对象的内容;
==是个运算符,只是比较是否相等;
作者:
贠(yun)靖
时间:
2012-3-9 04:26
给你个最简单的理解 ==是比较运算符 比较两边 看结果是否为真或者假
equals 可以理解 左边的对象内容是否等于右边的内容
比如 String a="abc"; a.equals("abc"); 就是判断a对象中存储的内容是否是abc字符串
作者:
袁野
时间:
2012-3-9 11:46
equals 比较的是俩个引用类型的对象地址是不是相同, == 是基本数据类型 比较俩个数值是不是相等
作者:
李会启
时间:
2012-3-9 12:23
equals()方法是用来检测两个对象的内容是否相等 ,而==的比较分两种:一种是比较基本数据类型,例如int,那么比较的就是基本数据类型的值;
如果比较的是对象,例如String,那么比较的是两个句柄是否指向内存中的同一个对象。!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2