您的位置:首页 > 其它

equals()方法和“==”的区别

2015-08-02 17:44 260 查看
在这两者中,“==”是比较简单的,所以我们先讨论一下“==”

1. “==”的作用就是比较左右两边的值是否相等:

(1)对于Java中的原生数据类型,如int,boolean等,其比较的就是它们字面值是否相等,这个应该是很好理解的;

(2)对于引用类型,如Student student=new Student(),这其中的student就是引用类型,其作用也是比较左右两边的值是否相等,只是时候的值是地址(引用类型的值是地址)。

2. equals()的作用需要分情况来说明:

(1)对于原生数据类型来说,equals()的作用是比较左右两边的值是否相等,跟“==”的作用是一样的。

(2)对于String类型来说,equals()可以判断当前字符串对象和传入的字符串对象是否是同一对象,也可以判断两个字符串对象的内容是否相等。这一点我们可以通过查看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;
    }


(3)对于Object类型的对象来说,equals()方法的作用就是判断当前对象啊和传入的对象是否为同一对象。

(4)对于自己定义的类所生成的对象来说,如果自定义的类没有重写equals()方法,那么它将继承父类或者Object类型的equals()方法。如果重写了的话当然就是自己定义的equals()方法所实现的功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: