Christmas Pikachu equals 와 (==)의 차이점
개발일지/자바

equals 와 (==)의 차이점

ZI_CO 2022. 9. 1.

기본적으로  equals 와 (==) 이 둘은 양 쪽에 있는 내용을 비교한 값을 boolean  type으로 반환한다는 공통점이 있다.

 

하지만 이 둘의 차이점이 있다.

 

1 형태의 차이

단순한 차이는 형태의 차이이다.

equals는 메소드이다. 객체끼리 내용을 비교가 가능하다.  --  메소드

== 은 비교를 위한 연산자 이다. -- 연산자

 

 

2.주소값 비교와 내용 비교

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

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

 

주소값이라는 것을 확실하게 집수소, 이메일주소 처럼 확정적으로 정해져서 보여지는 것은 아니지만 대상을 구별할 수 있게 하는 값이라고 알아두면된다.

 

 

 

아래 그림을 보면 쉽게 이해 할 수 있다.

a 와 b는 같은 주소값을 가지지만, c같은경우는 다른 주소 값을 가진다.

 

 

 

내용은 같지만  c가 다른 주소값을 할당을 받은 이유는 aaa 라는 문자열을 new String를 통해새롭게 선언을 했기 때문이다.

 

System.out.println("a.equals(b)); -- true

System.out.println( a == b); -- true

System.out.println( a == c); -- false

System.out.println( a.equals(c)); -- true

'개발일지 > 자바' 카테고리의 다른 글

this, Getter, Setter  (0) 2022.09.04
싱글톤  (0) 2022.09.01
생성자, 생성자의 오버로딩, 접근지정자  (0) 2022.08.31
CRUD란  (0) 2022.08.31
스택, 힙(메모리위치에 따른 변수구분)  (0) 2022.08.30

댓글