본문 바로가기
프로그래밍/JAVA

[JAVA] 문자열(String) 비교 시 == 와 equals의 차이점

by tempus 2021. 10. 29.
반응형

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));

    }
}

 

📃 출력 결과

result_page

결론은 JAVA에서 문자열을 비교 시에는 equals를 사용해야 합니다.

반응형

댓글


loading