[CS 면접 지식 -Java] 동일성과 동등성, equals()와 ==의 차이
·
면접 준비/Java
동일성과 동등성은 객체를 비교할 때 중요한 방식이다.자바에서는 두 개의 객체 또는 값을 비교할때 equals()또는==를 통해 구분할 수 있다. 1. equals와 ==의 차이equals()는 객체의 내용을 비교하는 반면, ==는 객체의 참조주소를 비교한다. 따라서 두 객체의 내용이 같더라도 서로 다른 객체라면 equals()는 true를 반환할 수 있지만 ==는 false를 반환한다. 2. 동등성(Equality) 동등성은 논리적으로 객체의 내용이 같은지 비교한다. 이때 사용하는 equals()메서드는 클래스에서 오버라이드하여 어떤 값을 비교할 것인지 설정할 수 있다.이때 중요한건 객체의 equals뿐만 아니라 hashCode도 오버라이드를 해줘야 한다는 점이다.그 이유는 해시값을 사용하는 자료 구조는..
[Java] hashCode와 Equals를 함께 재정의하는 이유
·
JAVA-기초/JAVA기본
Set과 Map의 타입이 Wrapper Class가 아닌 Object를 받을 때 중복 검사는 어떻게 진행하는가?➕ hashCode() 메서드를 오버라이딩하여 리턴된 해시코드 값이 같은지 판단합니다. 값이 다르다면 다른 객체로 판단하고, 해시코드 값이 같다면 equals()메서드를 오버라이딩 하여 다시 비교합니다.위의 개념을 위해서는 동일성과 동등성을 먼저 알아야한다. **동일성** : 두 개의 객체가 완전히 하나의 같은 객체인지 판단하는 것. 즉 , 메모리에 저장된 주소공간이 완전히 같을 경우 동일성이 보장된다.  **동등성** : 두 객체의 주소공간이 달라도 단순히 가지고 있는 값만 같다면 동등성이 보장된다. 이는 단순 문자열(원시형)과 객체로 생성한 값 사이의 차이점과 동일하다.그 다음으로는 equa..