String类和Object类equals方法的区别

String类

在Java中比较两个String对象的内容是否相同时使用equals方法。

    String str1=new String(“A”);
    String str2=new String(“B”);
    String str3=new String(“B”);
    boolean result1= str1.equals(str2);
    boolean result2= str2.equals(str3);
    System.out.println(result1);
    System.out.println(result2);
    则result1为false,result2为true。
而在String类中使用“==”时,比较的是两个String对象的引用是否指向同一个对象。
    String str1=new String(“B”);
    String str2=new String(“B”);
    String str3=str2;
    boolean result1=(str1==str2);
    boolean result2= (str2==str3);
    System.out.println(result1);
    System.out.println(result2);
则result1为false,result2为true。
result1为false因为str1、str2虽然内容相同但它们是不同的对象。而 result2为true是因为str2、str3是指向同一个String对象的。

再说明一点, String str = new String("abc")String str ="abc"是有一点小区别的,对于new出来的String对象,是每new一个内存里生成一个,也就是说其允许存在内容相同的重复对象。而String str ="abc"这种形式是不允许存在内容相同的重复对象,只要内存已经存在了,就不再新生成,而是把新的引用指向原来的对象。

Object类

所有的Java类都继承Object类,所以通常默认继承Object类。

Object类的equals方法和“==”相同,都是比较两个对象引用是否指向同一个对象。

原因:String类继承Object类后,也继承了equals方法,但String类对equals方法进行了重写,改变了equals方法的比较形式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值