equals는 일반 규약을 지켜 재정의하라 equals 메서드는 Object의 정보들에 대해 동등성을 비교하는 목적으로 사용한다. equals 메서드를 잘못 작성하면 잘못된 결과를 만들 수 있다. equals를 재정의하지 않는 경우 각 인스턴스가 본질적으로 고유하다 값이 아닌 동작을 개체로 표현하는 경우 (ex. Thread) 논리적 동치성(p->q, q->p)을 확인 할 필요가 없다 클라이언트가 원치 않거나 애초에 필요치 않다고 판단 할 수 있다(기본 equals로 해결). 상위클래스에서 재정의한 equals가 하위 클래스에도 적용된다. set, Map, List의 경우 Abstract(Type)의 equals를 쓴다. 클래스가 private, package-private여서 equals를 호출할 일이..