黑马程序员技术交流社区

标题: "=="和equals方法究竟有什么区别? [打印本页]

作者: 873350610    时间: 2015-11-18 20:28
标题: "=="和equals方法究竟有什么区别?
求大神告知
作者: 小笨笨天    时间: 2015-11-18 21:42
简单点说 前者比较基本数据类型  后者比较引用数据类型  感觉不怎么好说  照着多敲几次就慢慢明白了
作者: fsociety    时间: 2015-11-18 21:58
==
当两个基本数据类型用==比较时,判断的是大小
引用数据类型用==比较时,判断的就是地址值了

equals
只能判断引用数据类型
如果equals没有被重写,equals就是object的方法,那么两个引用数据类判断的就是地址值
一般我们使用equals时  都会对其进行重写,用来比较两个引用类型的内容是否相等
作者: 873350610    时间: 2015-11-20 22:21
小笨笨天 发表于 2015-11-18 21:42
简单点说 前者比较基本数据类型  后者比较引用数据类型  感觉不怎么好说  照着多敲几次就慢慢明白了 ...

貌似懂了......
作者: 873350610    时间: 2015-11-20 22:23
fsociety 发表于 2015-11-18 21:58
==
当两个基本数据类型用==比较时,判断的是大小
引用数据类型用==比较时,判断的就是地址值了

谢谢
作者: sufutian    时间: 2015-11-20 22:48
简单说 ==比较地址 equals 比较内容.
作者: wangdaban    时间: 2015-11-22 21:29
等等于比较的是地址值,equals比较的是内容
作者: 黑夜中那颗星    时间: 2015-11-22 21:39
本帖最后由 黑夜中那颗星 于 2015-11-22 21:49 编辑

==比较的是地址值,equals是Object里面的方法,String类继承,然后复写了这个方法把功能改成了比较字符串内容,原始Object里面的equals方法也是比较地址值的,
在Object里面的equals方法是这样的:
public boolean equals(Object obj){
  return this==obj;
}
作者: 小笨笨天    时间: 2015-11-22 22:01
赞赞赞赞




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