A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liunianruoshui 中级黑马   /  2016-4-5 11:15  /  611 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

==与equals的区别

5 个回复

倒序浏览
这个题目好水:
==是逻辑运算符,判断两边的值是否相等,如果是基本数据类型就判断值,如果是引用数据类型就判断引用值
equals方法是Object类中的成员方法,判断该对象和参数对象引用值是否相等。所有类都是Object类的子类或间接子类,所以所有类都有继承或是重写equals方法。未重写的equals方法判断的是对象的引用值是否相等。而Java类库中很多类对equals实现了重写,例如String类,Integer类等,就成了判断值是否相等。
回复 使用道具 举报
==:基本类型比较值,引用类型比较地址值
equals:默认比较的是地址值,与我们的目的不付,所以要重写
回复 使用道具 举报
equals 不重写的话 和== 好是一样的
重写后 多用来看 成员变量是否相同
回复 使用道具 举报
== 和 Equals 的区别
  1. == 是一个运算符。
  2.Equals则是string对象的方法,可以.(点)出来。
  
  我们比较无非就是这两种 1、基本数据类型比较 2、引用对象比较
  1、基本数据类型比较
  ==和Equals都比较两个值是否相等。相等为true 否则为false;
  
  2、引用对象比较
  ==和Equals都是比较栈内存中的地址是否相等 。相等为true 否则为false;
  
  需注意几点:
  1、string是一个特殊的引用类型。对于两个字符串的比较,不管是 == 和 Equals 这两者比较的都是字符串是否相同;
  2、当你创建两个string对象时,内存中的地址是不相同的,你可以赋相同的值。
  所以字符串的内容相同。引用地址不一定相同,(相同内容的对象地址不一定相同),但反过来却是肯定的;
  3、基本数据类型比较(string 除外) == 和 Equals 两者都是比较值;
回复 使用道具 举报
 ==是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值
equals方法是一个方法,只能比较引用数据类型,所有的对象都会继承Object类中的方法,如果没有重写Object类中的equals方法,equals方法和==号比较引用数据类型无区别,重写后的equals方法比较的是对象中的属性
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马