为什么两个员工的对象不平等?

Thi*_*ker 0 java collections object

我创建了一个名为employeeNo的Employee类.我重写了equals和hashcode方法.

@Override
public boolean equals(Object obj) {
       final Employee other = (Employee) obj;

 if (this.employeeNo == other.employeeNo && this.name.equals(other.name)) {
                return true;
            }

            return false;
    }

@Override
public int hashCode() {
    int hash = 3;
    hash = 53 * hash + (this.name != null ? this.name.hashCode() : 0);
    hash = 53 * hash + this.employeeNo;
    return hash;
}
Run Code Online (Sandbox Code Playgroud)

我的考试班

Employee p = new Employee();
        p.setName("v");
        p.setEmployeeNo(1);

        Employee p1 = new Employee();
        p.setName("v");
        p.setEmployeeNo(1);

        System.out.println(p==p1); // Print false . why?
Run Code Online (Sandbox Code Playgroud)

ζ--*_*ζ-- 10

System.out.println(p==p1);
Run Code Online (Sandbox Code Playgroud)

不会暗中打电话equals(.它比较了这里不同的参考文献.使用:

System.out.println(p.equals(p1));
Run Code Online (Sandbox Code Playgroud)

代替.

也:

Employee p1 = new Employee();
p.setName("v");
p.setEmployeeNo(1);
Run Code Online (Sandbox Code Playgroud)

用途p,p1应该在哪里使用.