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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 荣晓鹤 中级黑马   /  2013-11-8 08:43  /  1198 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java中==与equals的区别是什么?

评分

参与人数 1黑马币 +1 收起 理由
乔兵 + 1

查看全部评分

4 个回复

倒序浏览
毫无混分痕迹
回复 使用道具 举报
只要是对象类型  那么“==”比的都是地址!
只有基本类型  比如说是int float比较的才是值。
equals在默认的情况下  比较的也是对象的地址  只有你的子类重写了equals方法   系统才会按照子类的equals定义比较对象
那为什么String对象equals也可以比较值呢?  原因是String对象已经重写了equals方法

Object.equals(Object);
返回类型boolean;
例:
String s = "str";
if(s.equals("str")) {
System.out.println("返回结果为true");
}

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
==号是用了比较是否为同一对象,而equals在Object中底层方法其实调用的就是==号,如果你需要有自己的比较方式,就可以重写equals方法来判断。
如,String类中就重写了Object中的equals方法,比较的是字符的每一个字符是否相同。
回复 使用道具 举报
在子类没有重写父类中的equals之前,equals底层用的就是==。
当子类重写父类中的equals方法之后,一般比较的都是值是否相同了,而==比较的始终都是地址
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马