1. 자바에서 동일성과 동등성 이해하기 객체 지향 프로그래밍에서 동일성(Identity)과 동등성(Equality)은 객체를 비교하는 두 가지 중요한 개념이다. 2. 동일성(Identity) 동일성은 두 객체가 메모리 상에서 같은 위치를 차지하고 있는지, 즉 같은 객체인지를 판단한다.자바에서는 `==` 연산자를 사용하여 동일성을 확인한다. 예를 들어,Integer a = new Integer(1);Integer b = a;System.out.println(a == b); // true 이 경우 a와 b는 동일한 객체를 참조하므로 true를 반환한다. 3. 동등성(Equality) 동등성은 두 객체의 내용이나 상태가 같은지를 비교한다.자바에서는 `equals()` 메소드를 사용하여 동등성을 확인한다. 예..
동등성

1. 객체 비교의 일관성 equals()가 true를 반환하는 두 객체는 반드시 같은 hashCode 값을 반환해야 한다.만약, equals()가 true를 반환하는 데 hashCode 값이 다르다면, 예상치 못한 결과가 발생할 수 있다.대표적인 예로, 해시값을 사용하는 HashSet, HashMap에서 문제가 발생할 수 있다. 2. equals()와 hashCode()의 동작 순서 2 - 1. HashMap 에서 데이터가 추가될 때추가되는 데이터의 hashCode()의 반환 값이 HashMap에 존재하는지 비교한다.같은 값이 있다면, equals()를 통해 true가 나오는지 비교한다.true이면 동등한 객체로 판단한다. 따라서, equals() true가 나오는 동등한 객체라고 하더라도 hashC..