4.2.2 equals 메서드
equals 메서드는 한 객체가 다른 객체와 동등한지(같다고 볼 수 있는지) 검사한다. Object 클래스에 구현된 equals 메서드는 두 객체 참조가 동일한지(똑같은지) 판단한다. Object의 equals 구현은 꽤 합리적인 기본 값으로 두 객체가 동일하다면 당연히 동등하다. 상당수 클래스에 다른 검사는 필요 없다. 예를 들어 두 Scanner 객체의 동등성을 비교하는 것은 별 의미가 없다.
두 객체가 같은 내용을 담고 있을 때 같다고 보는 상태 기반 동등성 검사가 필요할 때만 equals 메서드를 오버라이드하면 된다. 예를 들어 String 클래스는 두 문자열이 같은 문자들로 구성되어 있는지 검사하려고 equals를 오버라이드한다.
Caution
equals 메서드를 오버라이드할 때마다 이것과 호환되는 hashCode 메서드도 반드시 작성해야 한다(4.2.3 hashCode 메서드 참고).