美文网首页
== 和 equals的区别

== 和 equals的区别

作者: 七海的游风 | 来源:发表于2019-02-23 19:35 被阅读0次

    Java 语言里的 equals方法其实是交给开发者去覆写的,让开发者自己去定义满足什么条件的两个Object是equal的。

    所以我们不能单纯的说equals到底比较的是什么。你想知道一个类的equals方法是什么意思就是要去看定义。

    Java中默认的 equals方法实现如下:

    public boolean equals(Object obj) {
        return (this == obj);
    }
    
    

    而String类则覆写了这个方法,直观的讲就是比较字符是不是都相同。

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

    equals如何比较并不重要,但是不理解equals存在的目的就容易踩坑。

    相关文章

      网友评论

          本文标题:== 和 equals的区别

          本文链接:https://www.haomeiwen.com/subject/hfzpyqtx.html