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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhy阿狸 初级黑马   /  2015-10-13 11:47  /  536 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

自己百度的又不同的回答,毕老师视频中提到equals是比较内存地址,但是百度变成这样
1、 ==是判断两个变量或实例是不是指向同一个内存空间
equals是判断两个变量或实例所指向的内存空间的值是不是相同

2、==是指对内存地址进行比较
equals()是对字符串的内容进行比较

3、==指引用是否相同
equals()指的是值是否相同
能不给精确解释一下

5 个回复

倒序浏览
其实Object类中的equals()方法,本质就return this.obj==obj;
也就是跟==一样一样的,也是比较内存地址
但是!!!!!!!
百度中一般都是以String类距离说明两者不同.
String是Object的子类,其equals方法是继承自Object的,同时复写equals方法!使之变成比较内容而不是比较内存地址!
印象中视频也提到过,其实不止一个Ojbect的子类复写了equals()方法,所以以后开发应注意一下
回复 使用道具 举报
明白了,谢谢这贴
回复 使用道具 举报
海狮 发表于 2015-10-13 14:04
其实Object类中的equals()方法,本质就return this.obj==obj;
也就是跟==一样一样的,也是比较内存地址
但是! ...

是不是当没有复写的时候,==比较的是内存地址,equals必须的是具体值
回复 使用道具 举报
当equals()方法没有被重写时,它其实就是==,比较的是地址值,重写后,才是比较的值是否相同。
回复 使用道具 举报
equals方法是用来比较两个对象的引用是否相等
而==是比较2个值是否相等
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马