1、Object中的equals()方法,源代码:
public boolean equals(Object obj) {
return (this == obj);
}
比较基本数据类型用“==”,比较引用数据类型用equals()方法。
String类和基本数据类型的包装类已经重写了equals方法。
2、equals方法和toString方法一般需要重写。
使用IDEA直接生成。
3、不调用任何方法,默认调用toString方法;输出地址十六进制哈希值。
public class Object_equals_toString {
public static void main(String[] args) {
People p1 = new People(22,"男");
People p2 = new People(22,"男");
System.out.println(p1.equals(p2));//true
System.out.println(p1 == p2);//false
System.out.println(p1);//22,男
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2);//true
System.out.println(s1.equals(s2));//true
Integer a1 = 1;
Integer a2 = 1;
System.out.println(a1 == a2);//true
System.out.println(a1.equals(a2));//true
//String类和基本数据类型的包装类已经重写了equals方法
}
}
class People{
int age;
String sex;
public People(int age, String sex) {
this.age = age;
this.sex = sex;
}
public People() {
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
People people = (People) o;
return age == people.age && Objects.equals(sex, people.sex);
}
@Override
public String toString() {
return "People{" +
"age=" + age +
", sex='" + sex + ''' +
'}';
}
}
4、int hashCode() //获取对象哈希值的一个方法
//不用看
5、protected void finalize() //垃圾回收器负责调用的方法
//已过时