동일성과 동등성
비교연산자(==)와 equals 메서드의 차이
동일성
public class EqualsExample {
private String dataKey;
public EqualsExample(String dataKey) {
this.dataKey = dataKey;
}
}
public class EqualsMain {
public static void main(String[] args) {
EqualsExample equalsExample1 = new EqualsExample("1");
EqualsExample equalsExample2 = new EqualsExample("1");
System.out.println(equalsExample1 == equalsExample2); // false
System.out.println(equalsExample1.equals(equalsExample2)); // false
System.out.println("equalsExample1.hashCode() = " + equalsExample1.hashCode()); // 1791741888
System.out.println("equalsExample2.hashCode() = " + equalsExample2.hashCode()); // 883049899
String a = "1";
String b = "1";
System.out.println(a == b); // true
System.out.println("a.hashCode() = " + a.hashCode()); // 49
System.out.println("b.hashCode() = " + b.hashCode()); // 49
}
}
동등성
Object 에서 구현한 equals 메서드 내용

해시코드 도 재정의 해야한다.
Last updated