코테 공부/java

equals(), == 차이

sweet-po 2023. 5. 1. 19:31

equals() 는 메소드 (객체끼리 내용을 비교)

== 은 비교를 위한 연산자.

 

 -주소값 비교와 내용 비교

 

비교할 수 있는 대상의 차이

equals 메소드는 비교하고자 하는 대상의 내용 자체를 비교하지만,

== 연산자는 비교하고자 하는 대상의 주소값을 비교.

 

CBV(Call By Value) 는 기본적으로 대상에 주소값을 가지지 않는 것으로

값을 할당받는 형태로 사용. 예를 들어 int, float, double, byte 등 primitive type.

 

CBR(Call By Reference) 는 대상을 선언했을 때, 주소값이 부여.

그래서 어떠한 객체를 불러왔을 때는 그 주소값을 불러. Class, Object(객체) 해당.

 

String a = "aaa111";

String b = a;

String c = new String ("aaa111");

 

a, b, c 모두 "aaa111" 라는 내용을 가지고 있지만 주소값에 대해서는 다른 값을 가지는 변수가 존재합니다.

a와 b는 같은 주소값의 "aaa111"

c는 다른 주소값의 "aaa111"

 

a.equals(b) true

a==b true

a==c false

a.equals(c) true