[Java] equals()와 hashCode()를 같이 재정의 해야하는 이유
요즘 모의 면접 스터디를 진행하고 있습니다. 이번주 자바 관련 질문을 주고받을 때 객체의 동일성과 동등성에 대한 질문에 저는 이렇게 대답했습니다. 🤔 객체의 동일성과 동등성의 개념에 대해 아시나요? "동일성은 두 객체가 정말 동일한 객체인지, 즉 같은 메모리 주소를 가졌는지의 여부를 확인합니다. 동등성은 두 객체의 값이 같은지 비교합니다. 자바에서는 ==연산자를 통해서 두 객체의 동일성을 비교할 수 있고, equals()를 통해 두 객체의 동등성을 비교할 수 있습니다. 여기서 주의할 점은 equals()를 따로 오버라이드 하지 않으면 두 객체의 hashCode() 값을 비교하게 되므로 두 객체의 equals(), hashCode() 모두 오버라이드 해야 합니다." 그 당시에는 이렇게 답변을 하고 마무리를..
2023.11.20