Android/Android Java-Kotlin

[Android Java Kotlin] equals와 ==의 차이(===)

Bell91 2023. 10. 26. 18:14
반응형

1. equals

CODE

String val1;
String val2 = "123";
System.out.println(val1.equals(val2));
System.out.println(val2.equals(val1));

Output

Compilation Errors Detected

File: ALIEN_255971/source/domain/HelloWorld.java
Line: 8
variable val1 might not have been initialized

 

val1에는 값이 없다.
val1.equals(val2)에서 val1에 값이 없으면 애러가 나오나
val2.equals(val1)에서 val1에 값이 없어도 괜찮다.

 

2. ==

자바에서는 값을 비교하는 것이 아니라 주소값을비교한다.
하지만 코틀린에서는 ?? 값을 비교한다.
코틀린에서는 .equals를 자동으로 호출해주지만 자바에서는 그렇지 못하다.
자바에서 ==를 사용할때는 주소값을 비교한다는 것을 잊지 말자.

 

3. 결론

equals()

Java : 값이 같은지 확인
Kotlin : 값이 같은지 확인

 

==

Java : 주소값이 같은지 확인
Kotlin : 값이 같은지 확인

 

===

Kotlin : 주소값이 같은지 확인

반응형