[Java] 6.2.2 String 클래스의 비교

출간일 2016년 11월 28일

판매가 2000원

형태 ebook

학습에 도움이 되시면 ebook을 구입하여 소장하시면 감사하겠습니다.

언제나 휴일 출판사의 수익금의 대부분은 아프리카에 기부하고 있습니다.


Java 언어에서 == 연산은 기본 형식은 갖고 있는 값의 일치 여부를 반환하며 클래스 형식은는 같은 개체를 참조하는지 여부를 반환합니다.

 

예를 들어 정수 형식 변수 i1과 i2가 있을 때 == 연산의 결과는 값이 같은지 여부입니다.

 

사용자가 정의한 클래스 형식을 == 연산으로 비교할 때는 같은 개체를 참조하는지 여부를 반환합니다.

 

위의 코드에서는 같은 값을 갖는 MyClass 형식 개체 두 개 생성하여 mc1과 mc2 변수에 대입하고 mc1이 참조하는 개체를 mc3 변수도 참조하게 대입하였습니다. 이 때 mc1과 mc2를 == 연산으로 비교하면 값은 갖지만 다른 개체이므로 false를 반환합니다. 물론 mc1과 mc3는 같은 개체를 참조하므로 == 연산으로 비교한 결과는 true입니다.

 

String 클래스 형식은 == 연산으로 비교할 때는 기본 형식처럼 같은 값인지 여부를 반환합니다.

 

위는 “1” 문자 집합을 갖는 두 개의 String 개체를 생성하여 str1변수와 str2 변수에 대입하였습니다. 그리고 str1을 str3변수에 대입하여 같은 개체를 참조하게 하였습니다. String 형식도 클래스 형식이므로 str1과 str2를 == 연산으로 비교하면 문자 집합체가 같지만 다른 개체이므로 false를 반환하고 str1과 str3를 == 연산으로 비교하면 true를 반환합니다.

 

다음 예는 기본 형식과 개발자가 정의한 클래스 형식 및 String 형식을 == 연산으로 비교한 결과를 확인하는 예제입니다.

실행 결과