String equals()方法 源码分析

Scroll Down
public boolean equals(Object anObject) {
	// ==:比较的引用类型,比较的是地址值是否相同
    if (this == anObject) { //地址值相等,返回true
        return true;
    }
    // instanceOf判断一个对象是不是某个类型的实例
    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) {
                // 比较每一个元素,只要有一个元素不想等 返回 false
                if (v1[i] != v2[i])
                    return false;
                i++;
            }
            return true;
        }
    }
    return false;
}

总结:String equals()方法思路:先比较地址值是否相等,在比较字符串的长度是否相等,最后对每个字符做一一对应比较。