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;
    }

以上是equals的源码,其实仔细看就知道了,传入一个参数,先和自己比较,然后再对比长度,还有char,如果一样就返回true,如果不一样,就false

而==则是很明显,对比的是内存的存放地址是不是一样。equals对比的是两个对象的内容是不是一样。

posted @ 2018-11-05 16:57  hickup  阅读(101)  评论(0编辑  收藏  举报