250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

[JAVA] 문자열 비교연산자 == 와 equals() 의 차이점에 대해서 본문

[Snow-ball]프로그래밍(컴퓨터)/java

[JAVA] 문자열 비교연산자 == 와 equals() 의 차이점에 대해서

Snow-ball 2021. 7. 13. 21:12
반응형

자바에서 일반적인 데이터 타입의 비교는 == 연산자를 사용한다. 그리고 String 문자열의 값을 비교할때에는 equals()라는 메소드를 사용하여 비교를 하게 된다.

 

equals와 == 두가지 모두 비교하는건데 어떠한 차이점이 있을까??

결론부터 이야기하자면, == 는 객체의 값(주소)을 비교하는것이다. equals()는 문자열을 비교하는 것이다.

 

== 연산자는 객체를 비교하는 연산자인데 두 변수는 서로 다른 객체이기 때문에, false를 반환한다. 

객체가 다른 객체이므로 부여된 주소가 다르기떄문이다.

좌 : 코드                                                                                     우 : 출력값

 

위에 사진처럼 주소가 다르기때문에 결과값이 false를 반환한다.

 

따라서 문자열 자체를 비교하고 싶을때는, == 대신 String 클래스의 equals()를 이용해서 비교해야 한다. equals()는 객체가 다르더라도 문자열 값만 비교하므로 원하는 결과를 반환 받을 수 있다.

좌 : 코드                                                                                우 : 출력

위사진처럼 두개의 문자열의 주소는 달라서 다른객체이지만, 문자열만 비교하므로 true를 반환하는것을 확인할 수 있다.

 

위의 리터럴 선언방식과 new 선언방식에 대해서 궁금하면 밑에 링크를 보면 좋을듯하다.

 

[JAVA] String Constant Pool 이란? (String 객체 선언 방식에 대해서)

JAVA에서 String 객체를 생성하는 방법은 2가지가 존재한다. 첫번째는 String literal이다. 큰따옴표("")를 사용해서 선언하는것이고, 두번째는 new 연산자로 객체를 생성하는 것이다. 두가지 방법은 어

akdl911215.tistory.com

 

 

 

 

 

 

 

베타존 : 네이버쇼핑 스마트스토어

나를 꾸미다 - 인테리어소품 베타존

smartstore.naver.com

 

반응형
Comments