String类equals源码分析

下面是jdk提供的string类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;
    }

分析:

 step1:判断被比较的对象与比较的对象是不是同一个对象,那么我们通过 “==” 比较其引用即可

 step2:判断对象是不是一个字符串,如果不是则返回false,如果是,那么从0位置索引开始一次比较这两个字符串,只有所有都相等时,返回true

猜你喜欢

转载自blog.csdn.net/qq_41332728/article/details/85290604