菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
180
0

equals和==的区别

原创
05/13 14:22
阅读数 57212

直接上代码,方便大家理解

   String a = new String("abcd");

      String b = new String("abcd");

      String c = "abcd";

      String d = "abcd";

      System.out.println(a==b);//比较地址,false

      System.out.println(c==d);//比较地址,c和d指向同一个地址,就是“abcd”这个对象的地址,true

      System.out.println(a.equals(b));//比较内容,true

      System.out.println(c.equals(d));//比较内容,true

      System.out.println(a==c);//比较地址,false

      System.out.println(a.equals(c));//比较内容,equals始终比较的是地址,true

==比较的是地址,而equals比较的是内容。

但是有一点需要明确的是,利用equals比较八大包装对象和String类(因为该类已重写了equals和hashcode方法)对象时,默认比较的是值,在比较其它对象都是比较的引用地址。

发表评论

0/200
180 点赞
0 评论
收藏
为你推荐 换一批