본문 바로가기

안드로이드/Kotlin

코틀린, 자바의 비교 연산 차이점(==, ===, equals)

728x90

자바

  • 두 참조 변수에서 ==을 사용시 주소값까지 비교한다.(동일성)
  • 두 참조 변수에서 equals로 비교시에는 두 변수의 값만 비교한다.(동등성)

 

코틀린

  • 자바와 달리 ==을 사용할시 내부적으로 equals를 호출한다.(값만 비교, 동등성)
  • ===을 사용하면 주소값까지 비교할 수 있다.
  • 코틀린에서 equals 와 == 과 같음

동일성

  • 두 객체가 완전히 동일함
  • 하나의 객체만 존재하는 것이고 그 객체를 여러 참조 변수가 사용하는 것을 의미
  • 한마디로 두 변수의 메모리 변수까지 같음

동등성

  • 동일한 정보를 갖는 객체를 의미
  • 서로 다른 객체가 비교 기준에 따라 같은 값을 가지고 있음을 의미

 

출처 : https://velog.io/@wlsrhkd4023/Kotlin-%EB%8F%99%EB%93%B1%EC%84%B1Equality-%EB%8F%99%EC%9D%BC%EC%84%B1Identify

 

[Kotlin] 동등성(Equality), 동일성(Identify)

코틀린에서는 두 객체를 비교하는타입에는 2가지가 있습니다.동등성, Structural equality (==)동일성, Referential equality (===)동일성은 객체가 참조하는 주소값을 비교하고, 동등성은 객체가 가지는 정보

velog.io

참고문헌 : https://kotlinlang.org/docs/equality.html#structural-equality

 

Equality | Kotlin

 

kotlinlang.org