==和equals源码分析

==比较基本数据类型时比较的是值,比较引用类型时比较的是指向的地址,和Object的equal作用相同,只是String重写了equal方法,比较的是对象的内容

Object.equals()

    public boolean equals(Object obj) {
    //这里用了==来判断,说明==的作用和Object的equal的作用是相同的
        return (this == obj);
    }

String.equals()

public boolean equals(Object paramObject) {
    if (this == paramObject)
      return true; 
     //比较String中的每一个内容
    if (paramObject instanceof String) {
      String str = (String)paramObject;
      int i = this.value.length;
      if (i == str.value.length) {
        char[] arrayOfChar1 = this.value;
        char[] arrayOfChar2 = str.value;
        for (byte b = 0; i-- != 0; b++) {
        //遍历比较每一个字符,若有一个不相等,就返回false
          if (arrayOfChar1[b] != arrayOfChar2[b])
            return false; 
        } 
        return true;
      } 
    } 
    return false;
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值