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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qincai 中级黑马   /  2014-6-10 19:31  /  937 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 qincai 于 2014-6-13 22:39 编辑

ArrayList传自定义student类对象时需要重写equals方法,传字符串时为何不需要重写equals方法?

3 个回复

倒序浏览
student和字符串都为对象,首先字符串本身就有equals方法,student没有
比较两个对象是否相等(其实是要比较里面的内容是否相等)
JVM在堆中分配了两块内存存储这两个对象
如果单纯的使用equals比较结果肯定为false
其实equals比较的也是内存地址

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
因为api中String类的equals方法已经重载过了,你查看一下源代码就会发现了。而你的student类是你自己创建的,所以需要你自己重载equals方法,如果没有重载,默认是的equals方法是比较类的hashcode值。
回复 使用道具 举报
String的已经重写equals方法了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马