동등성

동등성은 동등하다는 뜻으로 두 개의 객체가 같은 정보를 갖고 있는 경우를 의미한다. 동등성은 변수가 참조하고 있는 객체의 주소가 서로 다르더라도 내용만 같으면 두 변수는 동등하다고 이야기할 수 있다. 동일하면 동등하지만, 동등하다고 동일한 것은 아니다. 그리고 해당 변수가 동등한지 equals() 메서드를 통해 판별할 수 있다.

동일성

동일성은 동일하다는 뜻으로 두 개의 객체가 완전히 같은 경우를 의미한다. 여기서 완전히 같다는 뜻은 두 객체가 사실상 하나의 객체로 봐도 무방하며, 주소 값이 같기 때문에 두 변수가 같은 객체를 가리키게 된다.


equals()hashCode()

두 메서드 모두 Object 클래스의 메서드이며, 객체간 동등성동일성을 확인하기 위해서 사용된다.

equals()

객체를 비교하는 방법. 객체는 == 만으로 같은지 확인이 안되기 때문.

equals() 메서드를 작성하는 방법

  1. 재귀 (reflexive)

    null 이 아닌 x 라는 객체의 x.equals(x) 의 결과는 항상 true 이어야 한다.