黑马程序员技术交流社区

标题: 相等吗? [打印本页]

作者: JustForYou    时间: 2015-7-31 23:59
标题: 相等吗?
在Java基础中,现在接触到的有两个判断相等,经常搞混,求解!
==和.equals       在判断的时候经常用错,有时候还说要重写equals方法,,全乱了.........
作者: hellojavacode    时间: 2015-8-1 00:01
==是对数值得比较,而equals可以用于对字符串的比较。
作者: fantianfei    时间: 2015-8-1 07:34
就如两个人名字一样,==相当于说他们是否是同一个人,equals相当于说他们名字是否相同。
作者: 李峥    时间: 2015-8-1 08:27
Object中equals方法内部代码就是"==",所以Object类中两者都是比较地址值,
String类中重写了equals方法,比较的是对象的内容,与"=="不一样;
一般equals方法都会重写,重写内容是什么,就比较什么。
作者: JustForYou    时间: 2015-8-2 21:07
李峥 发表于 2015-8-1 08:27
Object中equals方法内部代码就是"==",所以Object类中两者都是比较地址值,
String类中重写了equals方法, ...

谢谢!!
作者: 知行合意    时间: 2015-8-2 21:13
==比较运算符
               A、基本数据类型:比较的是基本类型的值是否相等。
               B、引用数据类型:比较的是引用类型的地址值是否相等。
equals()
     比较两个对象是否相等(默认指的是地址值,也就是说是否指向同一对象)
     重写该方法,实现具体属性性的比较。

作者: huangguan    时间: 2015-8-2 21:15
这个应该是数字与字符之间的问题,学到后面你就清晰了
作者: 青春是你的烟火    时间: 2015-8-2 21:48
上帝类Object类中定义了equals方法,可以看一下源码,另外一些类重写了该方法,所以就会根据需要改变。之前,比较地址是没有意义的。因为new出来的两个对象,地址不可能一样。所以进行了重写。判断属性是否一样。
作者: guohuaxin    时间: 2015-8-2 21:55
==用于数值的比较,而equals用于引用变量的比较(比如对象,字符串)




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