ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • equals와 == 차이점, 동등성 vs 동일성
    카테고리 없음 2023. 2. 21. 19:21

     

     

    equals 메소드는 비교하고자하는 대상의 내용 자체(값 자체)를 비교하지만,

     

     

    == 연산자는 비교하고자하는 대상의 주소값을 비교한다.

     

     

    String a = "aaa";

     

    String b = a;

     

    String c = new String("aaa");

     

     

    (a와 b는 같은 주소값,   a와 c는 다른 주소값이지만, 같은내용)

     

     

     

     

     

     

     

    실행문장)

     

     

    System.out.println(a.equals(b));

     

    System.out.println(a == b);

     

    System.out.println(a == c);

     

    System.out.println(a.equals(c));

     

     

     

     

     

     

    실행 결과)

     

     

    true

     

    true

     

    false

     

    true

     

     

     

    + b.equals(c) 는 true

     

     

    b == c는 false 이다.

     

     

     

     

     

     

     

     

     

     

     

     

     

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

     

     

     

     

    동등성 vs 동일성

     

     

    예시)

     

    2개의 같은 모델의 핸드폰이 있다고 쳐보자.

     

    2개의 핸드폰은 동등하다고 볼 수는 있지만, 동일하다고 볼 수는 없다.

     

     

     

     

    같은 맥락으로 두 개의 객체가 있고,  두 객체가 주소값이 같다면 동일성을 가지는 것이고,

     

    두 객체가 값만 같다면 동등성을 가지는 것이다

     

     

     

     

     

    동일성 비교는 ==을 통해 주소값이 같은지 비교하는 것이다

     

    동등성 비교는 equals(), hashcode()를 통해 논리적 지위가 같은지 비교하는 것이다

     

     

     

     

     

Designed by Tistory.