반응형
JAVA를 처음 접하면 문자열이 같은지 비교할 때 if(A == B)
이렇게 하는 경우가 있습니다. 하지만 이는 의도한 대로 안 나올 가능성이 큽니다. 그 이유를 한 번 알아보겠습니다.
== 연산자
참조 비교를 통해 두 문자열을 비교합니다. 즉, 두 개의 객체가 메모리 공간을 가리키는지 확인합니다. 이 때의 반환 값은 boolean
으로 가져오며 같은 주소면 true
아니면 false
를 반환합니다.
equals() 메소드
두 객체의 내용을 비교하는 메소드입니다. 문자열의 데이터를 기반으로 비교합니다. 같은 내용이면 true
아니면 false
를 반환합니다.
📂 코드
public class Test {
public static void main(String[] args) {
String value1 = "Test";
String value2 = "Test";
String value3 = new String("Test");
String value4 = new String("Test");
//==비교
System.out.println("==비교");
System.out.println(value1 == value2);
System.out.println(value2 == value3);
System.out.println(value3 == value4);
//equals비교
System.out.println("\nequals() 비교");
System.out.println(value1.equals(value2));
System.out.println(value2.equals(value3));
System.out.println(value3.equals(value4));
}
}
📃 출력 결과
결론은 JAVA에서 문자열을 비교 시에는 equals
를 사용해야 합니다.
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] Stack과 Queue 사용법 (0) | 2021.11.08 |
---|---|
[JAVA] ArrayList에서 Array로 변환하기 (Integer, String) (0) | 2021.11.01 |
댓글