==(代表双方是否相同)
- 基本类型:值是否相等
- 引用类型:是否为同一个对象(引用的地址是否相同)
equals方法(对象内容是否相等)
- equals方法是object里面的方法 (如果不重写就比较两个对象是否为同一个对象)
public class Object {
public boolean equals(Object obj) {
return (this == obj);
}
}
- 没有重写(比较两个是否为同一个对象)返回:false
public class Test {
public static void main(String[] args) {
User user1 = new User(1001, "张三");
User user2 = new User(1001, "李四");
System.out.println(user1.equals(user2));
}
}
class User {
private int id;
private String name;
public User(int id, String name) {
this.id = id;
this.name = name;
}
}
public class Test {
public static void main(String[] args) {
User user1 = new User(1001, "张三");
User user2 = new User(1001, "李四");
System.out.println(user1.equals(user2));
}
}
class User {
private int id;
private String name;
public User(int id, String name) {
this.id = id;
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 id == user.id;
}
@Override
public int hashCode() {
return id;
}
}