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

来源:互联网 发布:大连软件学校 编辑:程序博客网 时间:2024/05/17 22:03
在这两者中,“==”是比较简单的,所以我们先讨论一下“==”
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()方法所实现的功能。









0 0
原创粉丝点击