黑马程序员技术交流社区

标题: ==与equals的区别 [打印本页]

作者: liunianruoshui    时间: 2016-4-5 11:15
标题: ==与equals的区别
==与equals的区别
作者: oassuperhan    时间: 2016-4-5 11:56
这个题目好水:
==是逻辑运算符,判断两边的值是否相等,如果是基本数据类型就判断值,如果是引用数据类型就判断引用值
equals方法是Object类中的成员方法,判断该对象和参数对象引用值是否相等。所有类都是Object类的子类或间接子类,所以所有类都有继承或是重写equals方法。未重写的equals方法判断的是对象的引用值是否相等。而Java类库中很多类对equals实现了重写,例如String类,Integer类等,就成了判断值是否相等。
作者: qing31657552    时间: 2016-4-5 23:13
==:基本类型比较值,引用类型比较地址值
equals:默认比较的是地址值,与我们的目的不付,所以要重写
作者: a47012188101218    时间: 2016-4-5 23:17
equals 不重写的话 和== 好是一样的
重写后 多用来看 成员变量是否相同
作者: 452296824    时间: 2016-4-5 23:18
== 和 Equals 的区别
  1. == 是一个运算符。
  2.Equals则是string对象的方法,可以.(点)出来。
  
  我们比较无非就是这两种 1、基本数据类型比较 2、引用对象比较
  1、基本数据类型比较
  ==和Equals都比较两个值是否相等。相等为true 否则为false;
  
  2、引用对象比较
  ==和Equals都是比较栈内存中的地址是否相等 。相等为true 否则为false;
  
  需注意几点:
  1、string是一个特殊的引用类型。对于两个字符串的比较,不管是 == 和 Equals 这两者比较的都是字符串是否相同;
  2、当你创建两个string对象时,内存中的地址是不相同的,你可以赋相同的值。
  所以字符串的内容相同。引用地址不一定相同,(相同内容的对象地址不一定相同),但反过来却是肯定的;
  3、基本数据类型比较(string 除外) == 和 Equals 两者都是比较值;
作者: 荒丶    时间: 2016-4-5 23:27
 ==是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值
equals方法是一个方法,只能比较引用数据类型,所有的对象都会继承Object类中的方法,如果没有重写Object类中的equals方法,equals方法和==号比较引用数据类型无区别,重写后的equals方法比较的是对象中的属性




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