Skip to content

Latest commit

 

History

History
17 lines (12 loc) · 1.53 KB

14.md

File metadata and controls

17 lines (12 loc) · 1.53 KB

14. 동일성(identity)와 동등성(equality)에 대해 설명해주세요. (equals(), ==)

29. Java 의 equals 와 == 의 차이에 대해 설명해주세요. Kotlin 의 == 와 === 는 어떤 차이가 있나요?


로마

  • 동일성은 두 개의 객체가 존재할 때 두 객체가 완전히 같은 것을 의미합니다. 즉 두 객체가 같은 주소를 참조하고 있는 것 입니다.
  • 동등성은 두 개의 객체가 존재할 때 두 객체가 가지고 있는 내용(데이터)이 같은 것을 의미합니다. 두 객체가 다른 주소값을 가지더라도 같은 데이터를 가지고 있으면 두 객체는 동등하다고 할 수 있습니다.
  • 동일할 경우 동등하다고 할 수 있지만 동등할 경우 무조건 동일하지는 않습니다.
  • Java 에서는 보통 equals 메서드로 동등성을 비교하고 == 으로 동일성을 비교합니다. 하지만 여기서 equals 메서드가 항상 동등성을 비교하는 것은 아닌데, 커스텀 객체에서 이를 재정의 해주지 않는다면 기본적으로 Object 객체에서 정의된 equals가 시행되고 동일성 검증을 시행하게 된다.
  • Kotlin 에서는 자바와 달리 == 연산 시 equals 가 시행되어 동등성 비교를 하게 되고 === 연산 시 동일성 비교를 하게 되고 같은 주소값을 가진 객체인지 비교하게 된다.

참고자료