equals方法是Object类的方法,所以所有的类都有这个方法,底层的源代码是
public boolean equals(Object obj) {
return (this == obj);
}
引用类型==比较,比较的是两个对象的的内存地址是否相同。但是比较内存地址是毫无意义的。所以equals方法只是用来让子类重写的,比如String中的equals方法就经过了重写,是直接比较字符串的值。
public static void main(String[] args) {
Person p1=new Person("zhangsan",18);
Person p2=new Person("zhangsan",18);
String s1="123";
String s2="123";
boolean b1=p1.equals(p2);
boolean b2=s1.equals(s2);
boolean b3=s1==s2;
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);
}