package com.wms;
import java.util.Objects;
public class User {
private String name;
private String pwd;
public User(String name, String pwd) {
this.name = name;
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return Objects.equals(name, user.name) &&
Objects.equals(pwd, user.pwd);
}
//
// @Override
// public int hashCode() {
// return Objects.hash(name, pwd);
// }
}
package com.wms;
public class Test {
public static void main(String[] args) {
String a = "中午";
String b = "中午";
String c = new String("中午");
String d = new String("中午");
User user1 = new User("张三", "123");
User user2 = new User("张三", "123");
System.out.println(a == b);//true
System.out.println(a.equals(b));//true
System.out.println(a == c);//false
System.out.println(a.equals(d));//true
System.out.println(c == d);//false 比较值、比较地址
System.out.println(c.equals(d));//true
// System.out.println(user1==user2);//false 重写equals和hashCode方法
// System.out.println(user1.equals(user2));//true 重写equals和hashCode方法
// System.out.println(user1==user2);//false 未重写equals和hashCode方法
// System.out.println(user1.equals(user2));//false 未重写equals和hashCode方法
System.out.println(user1 == user2);//false 重写equals但未重写hashCode方法
System.out.println(user1.equals(user2));//true 重写equals但未重写hashCode方法
System.out.println("user1.hashCode()" + user1.hashCode());//重写equals但未重写hashCode方法 : user1.hashCode()589446616
System.out.println("user2.hashCode()" + user2.hashCode());//重写equals但未重写hashCode方法 : user2.hashCode()1321640594
}
}