






为真是因为改写了equals方法,判断值是否相等了
package com.equals.test01;
public class equals {
    public static void main(String[] args) {
        Person person = new Person("xaiomi", 19, "nv");
        Person person1 = new Person("xaiomi", 19, "nv");
        System.out.println(person1==person);//false
        System.out.println(person.equals(person1));//ture
    }
}
class Person{
    String name;
    int age;
    String sex;
    public Person(String name, int age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    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;
    }
    public boolean equals(Object objt)
    {
        if (this==objt)
            return false;
        if (objt instanceof Person)
        {
            Person p=(Person)objt;//因为,objt是顶层父类object类型的,无法直接访问子类特有的方法,所以要强制转换
            return this.name.equals(p.name)&&this.age==p.age&&this.sex.equals(p.sex);//判断当前的与传进来的对象属性是否都相同
        }
        return false;
    }
}
列题:
例题2

1.数值和数值相比一样就相等。
2.也有一样,A的ASCII值也是65
3.同样
4.这个时候比较的是地址是否一样,都是new的一个新的,所以不相同
5.str为字符串字符串的equals()方法改写了,所以相同
6.等号两边类型都不同所以对比不了,并且报错








![[web]-反序列化漏洞-easy入门](https://i-blog.csdnimg.cn/direct/3868df69b97e4c2cb0b33b2d26f0e4b4.png)










