두 객체의 주소값이 같다면 두 객체를 물리적으로 같다고 한다. 두 객체가 주소값이 일치하지 않더라도, 두 객체의 필드가 일치하기만 한다면 두 객체가 같다고 판단하는 것은 두 객체는 논리적으로 같다고 한다. 모든 클래스들은 Object 클래스를 상속하는데, Object 클래스에는 equals 메소드가 존재한다. equals를 재정의 하지 않은 상태에서는 두 객체를 비교할 때 물리적 같을 때만 true를 반환한다. 반면 equals를 오버라이딩으로 재정의 해준다면 두 객체가 논리적으로 같을 때도 true를 반환하게 된다. 인텔리제이의 Generate 단축키(윈도우 기준 alt + insert)를 사용하면, 인텔리제이는 eqauls와 hashcode를 한번에 재정의하게 한다. 인텔리제이는 괜한 짓을 하지 않는..