黑马程序员技术交流社区
标题:
==和equals有什么区别
[打印本页]
作者:
Ruby
时间:
2015-7-6 20:29
标题:
==和equals有什么区别
求大神解答
作者:
Love丶cd
时间:
2015-7-6 21:13
你应该知道,在对象初始化的时候都会分配内存空间。内存空间不同,自然==和equals返回的值就不一样。
作者:
赵龙
时间:
2015-7-6 22:32
== 注重的是 值的比较
equals 注重的是内容的比较
作者:
palysh
时间:
2015-7-6 22:35
==比较的是对象在内存中的地址是否相同,即使对象相等但在内存中的地址不等返回还是false;equals比较的是对象本身是否相等
作者:
夜写意
时间:
2015-7-6 22:48
==比较的是栈内存内的内容,equals比较的是堆内存内的内容。
作者:
惜爱上缘
时间:
2015-7-6 23:01
"==" 可以说是比较的是两个变量的内存地址
"equals"比较的是两个两个变量地址中的内容
作者:
东东的一些事
时间:
2015-7-6 23:37
equals 默认是比较地址值,但一般都重写该方法才有意义。
作者:
wgy
时间:
2015-7-7 08:01
==和equals()的区别?
==:
比较基本类型:比较的是基本类型的值是否相同。
比较引用类型:比较的是引用类型的地址值是否相同。
equals():
比较引用类型,默认比较的是引用类型的地址值是否相同。
如果类重写了该方法,那就得按照重写后的规则进行比较。
作者:
云雀
时间:
2015-7-7 08:26
我也来看一下
作者:
wing-SF
时间:
2015-7-7 08:41
==一般用来比较俩端的值是否相同,equals的话,也有这样的作用,但是equals更多的情况是会被重写的,用来比较想让得到的结果
作者:
zhwfa1991
时间:
2015-7-7 08:50
基本数据类型之间比较应该用==,比较的是它们之间值是否相等
equal是Object类中的一个方法,这个方法初始是比较内存地址是否相等,但是在一些类库当中,这个方法被覆盖了,所以在没有覆写这个方法的时候比较的还是内存地址
作者:
等你的季节-夏天
时间:
2015-7-7 09:08
根本上的区别,equsle是方法, == 是比较运算符;
equsle方默认比较的是对象的地址;
重写equsle方法,比较对象中的成员变量值;
== 两边是基本数据类型,比较的是具体的数值;
== 两边是引用数据类型,比较的是对象的地址;
作者:
路途
时间:
2015-7-7 09:17
上面说的都对。。。。不过只要记得比较数字是用 ==其他尽量不用就好吧.........
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2