黑马程序员技术交流社区

标题: 相等问题 [打印本页]

作者: 汤芝    时间: 2012-8-20 12:20
标题: 相等问题
"=="和equals方法有什么区别?
作者: 王海亮    时间: 2012-8-20 12:44
==操作符专门用来比较两个变量的值是否相等, equals方法是用于比较两个独立对象的内容是否相同,但是如果是基本类型比较,那么只能用==来比较,不能用equals


作者: 孙树勋    时间: 2012-8-20 12:49
==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同(比较两个引用变量 所指向的内存地址是否相同),要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。

equals方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。
作者: 杨鹏鹏    时间: 2012-8-20 13:38
本帖最后由 杨鹏鹏 于 2012-8-20 13:40 编辑

对于原生数据类型来说,比较的是左右两边是否相等
对于引用类型来说,比较左右两边的引用是否指向同一个对象,或者说左右两边的引用地址是否相同
equals()方法,该方法定义在Object类当中,因此java中的每个类都具有该方法,对于Object类的equals()方法来说,它是判断调用equals()方法的引用于传进来的引用是否一致,即这两个引用是否指向的是同一个对象。对于Object类的equals()方法来说,他等价于== 。对于String类的equals()方法来说,它是判断当前字符串于传进来的字符串的内容是否一致


作者: 马州州    时间: 2012-8-20 13:43
这个问题建议百度,有专门的解释的,超级清楚

作者: 汤芝    时间: 2012-8-20 13:46
哦,问题已解决。谢谢




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