为了账号安全,请及时绑定邮箱和手机立即绑定

equals和==

equals和==

wenxi_da 2018-02-01 13:28:20
==比较内存地址,所以它们不等于好理解;但是我没重写equals方法,可是出来的结果为什么是相等的呢?
查看完整描述

2 回答

已采纳
?
产品经理不是经理

TA贡献481条经验 获得超143个赞

字符串类内部已经重写了equals方法,调用equals就是判断它们的内容是否相同。


查看完整回答
1 反对 回复 2018-02-01
?
汤姆大叔

TA贡献1条经验 获得超0个赞

// 这个是equals的源码。
// 把字符串每个字符拆分,然后对比。

public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (anObject instanceof String) {
        String anotherString = (String)anObject;
        int n = value.length;
        if (n == anotherString.value.length) {
            char v1[] = value;
            char v2[] = anotherString.value;
            int i = 0;
            while (n-- != 0) {
                if (v1[i] != v2[i])
                    return false;
                i++;
            }
            return true;
        }
    }
    return false;
}


查看完整回答
反对 回复 2018-02-06
  • 2 回答
  • 0 关注
  • 1016 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信