[JAVA] 문자열 비교연산자 == 와 equals() 의 차이점에 대해서
자바에서 일반적인 데이터 타입의 비교는 == 연산자를 사용한다. 그리고 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