基本概念:
object类位于java.lang包中,java.lang包包含着java最基础和核心的类,在编译时会自动导入;
object类是所有java类的祖先。每个类都使用 object 作为超类。所有对象(包括数组)都实现这个类的方法。可以使用类型为object的变量指向任意类型的对象
equals()方法:比较两个对象是否同一
      如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等。如果两个引用对象指的是同一个对像,则称这两个变量同一。object类中定义的equals 函数原型为:
public boolean equals(object);他是判断两个对象是否同一,并不是是否相等
①只能处理引用类型变量
 ②在object类,发现equals()仍然比较的两个引用变量的地址值是否相等
package com.example.demo.test;public class person {    private string username;    private string age;    public string getusername() {        return username;    }    public void setusername(string username) {        this.username = username;    }    public string getage() {        return age;    }    public void setage(string age) {        this.age = age;    }}
package com.example.demo.test;public class test {    public static void main(string[] args) {        person p1 = new person();        person p2 = new person();        system.out.println(p1.equals(p2));        system.out.println(p1 == p2);        /*         * string类重写了object类的equals()方法,比较是两个对象的实体内容"是否完全相同。         */        string s1 = new string("aa");        string s2 = new string("aa");        system.out.println(s1.equals(s2));        system.out.println(s1 == s2);    }}
从运行结果可以看到的是object中的equals方法比较的是两个对象是否同一,
而string类中的equals方法比较的是字符串的value是否相等。 请看string.java中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;    }
以上就是如何正确使用java object类的equals()方法?的详细内容。
   
 
   