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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Ruby 中级黑马   /  2015-7-6 20:29  /  547 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求大神解答

12 个回复

倒序浏览
你应该知道,在对象初始化的时候都会分配内存空间。内存空间不同,自然==和equals返回的值就不一样。
回复 使用道具 举报
==  注重的是 值的比较
equals 注重的是内容的比较
回复 使用道具 举报
==比较的是对象在内存中的地址是否相同,即使对象相等但在内存中的地址不等返回还是false;equals比较的是对象本身是否相等
回复 使用道具 举报
==比较的是栈内存内的内容,equals比较的是堆内存内的内容。
回复 使用道具 举报
"==" 可以说是比较的是两个变量的内存地址
"equals"比较的是两个两个变量地址中的内容
回复 使用道具 举报
equals 默认是比较地址值,但一般都重写该方法才有意义。
回复 使用道具 举报
wgy 中级黑马 2015-7-7 08:01:41
8#
==和equals()的区别?

                ==:
                        比较基本类型:比较的是基本类型的值是否相同。
                        比较引用类型:比较的是引用类型的地址值是否相同。

                equals():
                        比较引用类型,默认比较的是引用类型的地址值是否相同。
                        如果类重写了该方法,那就得按照重写后的规则进行比较。
回复 使用道具 举报
我也来看一下
回复 使用道具 举报
==一般用来比较俩端的值是否相同,equals的话,也有这样的作用,但是equals更多的情况是会被重写的,用来比较想让得到的结果
回复 使用道具 举报
基本数据类型之间比较应该用==,比较的是它们之间值是否相等
equal是Object类中的一个方法,这个方法初始是比较内存地址是否相等,但是在一些类库当中,这个方法被覆盖了,所以在没有覆写这个方法的时候比较的还是内存地址
回复 使用道具 举报

   根本上的区别,equsle是方法, == 是比较运算符;

   equsle方默认比较的是对象的地址;
   重写equsle方法,比较对象中的成员变量值;

   == 两边是基本数据类型,比较的是具体的数值;
   == 两边是引用数据类型,比较的是对象的地址;
回复 使用道具 举报
上面说的都对。。。。不过只要记得比较数字是用 ==其他尽量不用就好吧.........
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马