개발일지/자바
equals 와 (==)의 차이점
ZI_CO
2022. 9. 1. 09:13
기본적으로 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