java 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){

//*********求解释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;

}

对于anotherString.value.length,最初的想法是用anotherString.length(),但是对于源码中的解释,实在没明白value.length的意思

刚开始看这部分,很多不明白的地方,求解释,先谢过啦


吃鸡游戏
浏览 865回答 2
2回答

慕的地8271018

String类只是封装字符串的一些操作的,真是的字符串就是存在其下value这个字符数组中的。而String.length()的内部实现就是value.length,所以这里直接使用value的长度,不用调用String.length(),也避免了调用方法多余的开销。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java