본문 바로가기

PROGRAMMING/JAVA

[JAVA] equals 와 == 비교

 equals와 == 비교

 

1. 우선 equals는 메소드, ==는 연산자이다.

 

2. 반환형

equals는 return형이 boolean

true if the given object represents a String equivalent to this string, false otherwise

같으면 true 다르면 false

boolean equals(Object anObject)

Compares this string to the specified object.

== 도 반환형은 boolean이다

 

3. (geeksForgeeks 참조)

Use == operators for reference comparison (address comparison) and .equals() method for content comparison

equals는 컨텐츠비교, ==는 주소 비교 

결국 Call By Value / Call By Reference 호출 방법의 차이

 

가장 많이들 쓰는 예제

 

String v1 = "a"

String v2 = v1

String v3 = new String("a");

 

이 경우 v2는 v1을 가리켜 같은 주소를 할당

v3는 새로 선언, 메모리에 할당되어 다른 주소를 갖는다

 

== 으로 비교

v1 == v2 true

v1 == v3 false

v2 == v3 false

 

equals 로 비교

v1.equals(v2) true

v1.equals(v3) true

v2.equals(v3) true