为了账号安全,请及时绑定邮箱和手机立即绑定

java String源码equals()方法不明白的地方

java String源码equals()方法不明白的地方

吃鸡游戏 2019-03-20 16:14:53
直接贴代码吧: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的意思刚开始看这部分,很多不明白的地方,求解释,先谢过啦
查看完整描述

2 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

String类只是封装字符串的一些操作的,真是的字符串就是存在其下value这个字符数组中的。而String.length()的内部实现就是value.length,所以这里直接使用value的长度,不用调用String.length(),也避免了调用方法多余的开销。

查看完整回答
反对 回复 2019-04-19
  • 2 回答
  • 0 关注
  • 864 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信