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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

深究equals和==的真正区别?

6 个回复

倒序浏览
equals 是顶级父类Object类的成员方法,用于比较两个对象是否"相等",默认情况下比较的是对象的引用是否相同,
由于比较对象的引用没有意义,一般建议重写该方法,重写equals方法可以比较两个对象的属性值,
而==是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值
比如说
String s1="a";
String s2="a";
boolean b = s1.equals(s2);
System.out.println(s1 == s2);//比较的是地址值,两个对象的地址引用不一样,false
System.out.println(b);        //String类重写了equals方法,比较两个对象的内容,都是"a",是一样的,结果为true
回复 使用道具 举报
equals是object类中的方法,在object中它的底层是用的==,比较的是两个对象的地址是否相同,而==是一个比较运算符,比较的是内存地址。而一般在定义类的时候,我们会根据需求重写equals方法来满足需求,比如String类
回复 使用道具 举报
来看看,还没学到这,当先预习了
回复 使用道具 举报
1楼 总结的挺好
回复 使用道具 举报
1楼已经回答的挺好了
回复 使用道具 举报
简单说就是equals比较的是两个的值是否相等
==比较的是两个地址值是否相同.
相等的值可能有多地址.
相同地址只能有一个值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马