프로그래밍/JAVA

[Java] equals 메소드

하와이블루 2022. 8. 2. 22:26
728x90

 

 

equals메소드는 java.lang 패키지 Object 클래스의 메소드로 객체를 비교하여 같을 경우 true를 다를 경우 false를 반환한다.

class Test
{
    public static void main(String[] args)
    {
        String test1 = new String("문자");
        String test2 = new String("문자");
        
        System.out.println(test1.equals(test2));      // true
    }
}

 

그럼 == 와 무슨 차이가 있을까?

== 은 두 변수가 동일한 객체를 참조하는지 여부를 비교하는 것으로 아래 코드를 보면

class Test
{
    public static void main(String[] args)
    {
        String test1 = new String("문자");
        String test2 = new String("문자");
        
        System.out.println(test1 == test2);      // false
    }
}

두 객체를 새롭게 생성하여 다른 객체를 참조하기 때문에 false의 결과가 나온다.

 


이제 조금 헷갈릴 수 있는 얘기를 해봅시다.

리터럴 표기법으로 두 변수를 선언과 동시에 동일한 문자열 값을 지정해주면 어떻게 될까? 코드를 확인해보자.

class Test
{
    public static void main(String[] args)
    {
        String test1 = "문자";
        String test2 = "문자";
        
        System.out.println(test1 == test2);      // true
        System.out.println(test1.equals(test2));      // true
    }
}

이러한 경우에는 "문자"라는 하나의 객체에 두 변수가 참조하고 있는 그림으로 ==, equals 둘다 true인 결과를 반환한다.

 

 

 

 

728x90