您的位置:首页 > 编程语言 > Java开发

String equals方法的一些疑问

2016-03-24 17:12 501 查看
 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;

    }

不解1:

为什么this==anObject返回true就直接返回true了,这里并没有比较hashcode啊,这样真的可以吗?

 

 if (this == anObject) {

            return true;

        }

不解2:

为什么Object要是String类型才能进行判断,其他对象的都返回false了吗?

if (anObject instanceof String) {}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java