Hello, Coding

[ JAVA ] "==" 와 "equals" 의 차이점은 무엇일까? 본문

개발 질문 & 답변/자바 질의응답

[ JAVA ] "==" 와 "equals" 의 차이점은 무엇일까?

DURAM 2023. 5. 26. 07:51

흔히 프로그래밍 코드에서는 "~~와 같다"를 표현할 때 == 을 사용한다.

하지만 자바에서는 String 타입에서는 == 대신 equals()라는 메소드를 사용해 비교한다.

 

왜 equals()를 사용할까?

자바에서 String을 사용하는데는 두 가지의 방법이 존재 합니다.

1. 리터럴을 이용한 방식 
2. new 연산자를 이용한 방식 

 

먼저 == 연산자의 처리 방식을 알아보자 == 는 흔히 주소 값을 비교하여 맞으면 true를 반환한다.

하지만 여기서 자바의 equals() 메소드는 주소 값을 비교하지 않고 비교하고자 하는

두 개의 대상의 값 자체를 비교하게 된다.

 

여기서 알고가야 하는 것이 있는 데 바로 동등성동일성이다.

동등성 : 객체가 주소값이 다르더라도 내용(필드값)이 같다면 같다고 보는 것. ex) equals()
동일성 : 객체가 주소값이 다르면 아무리 같은 내용이더라도 같지 않다고 보는 것. ex) ==

 

그래서 equals() 메소드는 String을 생성하느냐에 따라 결과가 달라지지 않고 정확한 비교를 할 수 있다.

 

 

String 사용 방법에 따른 처리 로직은 아래를 참고하면 된다.

출처 : https://www.geeksforgeeks.org/java-equals-compareto-equalsignorecase-and-compare/