黑马程序员技术交流社区
标题:
"=="和equals区别?
[打印本页]
作者:
未名以律
时间:
2014-8-12 11:07
标题:
"=="和equals区别?
本帖最后由 未名以律 于 2014-8-13 07:52 编辑
int a=10;
int b=10;
a==b是true。
String a=new String("foo");
String b=new String("foo");
a==b是false。
不是一样的吗?怎么会是false
作者:
tiandzwx
时间:
2014-8-12 11:17
==比较的是两个的值是否相等;
int a 和int b都为10,所以是true
String a 指向的是“foo”对象的地址,String b指向的是另一个对象“foo”的地址,对比结果当然为false;
注意,创建的两个“foo”对象在内存中存储位置是不同的!虽然内容相同,但是存放的地方不同;
作者:
酋长第一
时间:
2014-8-12 11:43
A:==
a:基本类型 比较的是基本类型的值
b:引用类型 比较的是引用类型的地址值
B:equals()
只能比较引用类型。
默认比较地址值。
作者:
酋长第一
时间:
2014-8-12 11:47
==比较引用类型 比较的是他的地址,因为对象是new出来的,所以new的动作就是在堆中开辟了一个新的空间,所以两个new出来的对象地址值不可能相同,所以是false
作者:
jw在路途
时间:
2014-8-12 11:48
==的作用:
比较基本类型:比较的是基本类型的值是否相同。
比较引用类型:比较的是引用类型的地址值是否相同。
equals();
public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。
默认情况下,Object类的equals比较的是地址值。
所以,如果你想比较成员变量的值,请重写该方法。
作者:
未名以律
时间:
2014-8-13 07:51
jw在路途 发表于 2014-8-12 11:48
==的作用:
比较基本类型:比较的是基本类型的值是否相同。
...
很详细,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2