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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张慈瑞 中级黑马   /  2014-7-11 11:32  /  1670 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

尽量能给出比较详细的解释,好像在不同的用法中他们的区别也是不同的。

12 个回复

倒序浏览
像我们用的最多的就是在String里,equals比较的是值,==比较的是引用
而像我们自己定义的类直接使用equals时,比较的也是引用,这是equals和==一样,因为这时自定义类直接继承的是Object里的equals方法,为什么String里比较的是值呢,因为String类把equals覆写了
回复 使用道具 举报 1 0
equals是基于== 的
回复 使用道具 举报
equals比较的是对象的内容,==比较的是对象的地址。
回复 使用道具 举报
equals比较的是对象中某一个成员的值,而 ==比较的是对象地址   一般自定义类都是通过重写equals来进行比较
回复 使用道具 举报
回复 使用道具 举报
equals方法在object中定义,用与比较两个对象是否相同,a和b是否指向了同一个对象。
==与equals相同
与==不同的是所有类都可以复写equals方法,比如String就重写了equals方法,只比较两个字符串的值是否相同
回复 使用道具 举报
路过!!!!!!!!!!!!!!!
回复 使用道具 举报
54lier 初级黑马 2014-7-11 15:33:36
9#
「==」是用于判断两个基本数据类型的值是否相等和判断两个对象的引用是否相同
「equals」是Object的一个方法,主要是判断两个对象的值是否相等,如果需要使用equals方法比较两个对象是否相等我们需要实现对象的 hashcode和equals方法,否则比较结果可能不准确。

还有就是如果我们在集合里面使用contains方法或者remove方法的时候,都会调用hashcode和equals方法
回复 使用道具 举报
==比较的是两个对象的内存地址(也就是看是不是同一个对象)比如:Student stu1=new Student();Student stu2=stu1;stu1==stu2就是true,3==3也是true,因为3是存在数据区的只有一个地址。Object中的equals方法比较的也是内存地址(也就是是不是同一个对象),String中的equals方法比较的是两个String对象的内容是不是相同,最后经典语录:i  see i  forget,i  write  i  rember,i  do  i  understand
回复 使用道具 举报
整形==号字符串用equals
回复 使用道具 举报
一般==比较的是引用,也地址值是否相同,equals是重写父类的方法,默认也是比较地址值,重写后,按照你重写的比价方法判断
回复 使用道具 举报
==可用来比较基本数据类型和比较引用数据类型对象的地址是否相同,而String类equals比较字符串内容是否一样,其它对象默认比较地址是否相同
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马