黑马程序员技术交流社区
标题:
深度解释一个equals和==的区别,发现好像又混淆了
[打印本页]
作者:
zhy阿狸
时间:
2015-9-30 09:30
标题:
深度解释一个equals和==的区别,发现好像又混淆了
RT。求大神,谢谢
作者:
阿加斯冬季
时间:
2015-9-30 09:47
我的理解是,==只适用于数值类型的对比,然后其他的char啊,String啊什么的,或者定义的对象间的对比,都用equals。我是这么理解的,==就是几等于几,equals就是谁跟谁是一样的。
作者:
kangyang
时间:
2015-9-30 10:00
你可以这样理解:==对比的是变量储存的数据地址值,a.equal(b)对比的是a和b两个的内容。
int a=10;
int b=10;
则a==b将是true。
因为”10“这个int类型的值在内存中有固定的地址值,a和b都指向了同一个地址值。
String a=new String( "foo ");
String b=new String( "foo ");
则a==b将返回false。
应为a和b中的“foo”是在不同对象中创建的,因而有着不同的地址值,所以==不能判断,只能用equal()来判断。
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2