黑马程序员技术交流社区

标题: 深度解释一个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两个的内容。
  1. int a=10;
  2. int b=10;
  3. 则a==b将是true。
  4. 因为”10“这个int类型的值在内存中有固定的地址值,a和b都指向了同一个地址值。
  5. String a=new String( "foo ");
  6. String b=new String( "foo ");
  7. 则a==b将返回false。
  8. 应为a和b中的“foo”是在不同对象中创建的,因而有着不同的地址值,所以==不能判断,只能用equal()来判断。
复制代码






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2