이전에 equals, hashCode, toString에 대해서 정리한 적이 있으나 고려하지 않은 부분이 많은 것 같아 작성한다. equals 메서드는 재정의하기 쉬워보이지만 곳곳에 함정이 도사리고 있어서 자칫하면 끔찍한 결과를 초래한다. 문제를 회피하는 가장 쉬운 길은 아예 재정의하지 않는 것이다. 그냥 두면 그 클래스의 인스턴스는 오직 자기 자신과만 같게 된다. 따라서 다음에서 열거한 상황 중 하나에 해당된다면 재정의하지 않는 것이 최선이다. 1.각 인스턴스가 본질적으로 고유하다. 값을 표현하는 게 아니라 동작하는 개체를 표현하는 클래스가 여기 해당한다. Thread가 좋은 예로 Object의 equals 메서드는 이러한 클래스에 딱 맞게 구현되었다. 2.인스턴스의 '논리적 동치성'을 검사할 일이 없..