JAVA面试经典--“==”与“equals”

      所谓的面试题,无非就是考察你的基本功和细心,下面说一个典型的例子:

       “==”和“equals”使我们平常见过最多的比较等价方法,虽然他们的使用相似,但是他们的原理确实天差地别,比如

String a="11";

String b="11";

String c=new String(b); ==关键字("new"

System.out.println(a==b);------1

System.out.println(a==c);------2

System.out.println(a.equals(b));-----3

System.out.println(a.equals(c));-----4

而结果我们会发现1、3、4是true,2是false

结果其原理很简单,“==”是比较对象的地址,c是引用别人的,而不是自己的,所以与a不匹配(自己的脑袋只有自己能用,别人的割下来你也用不了);而“equals”是比较内容的值,不管你是谁家的,只要结果一样就行(只要是帽子都能戴,不用去管他是垃圾堆里来的还是商店买的)!

备注:String c=new String(“11”);再去比较也是false!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值