cs/ODOQ

[ODOQ] 동일성과 동등성

icodesiuuuu 2024. 12. 6. 16:55

[One Day One Question]

동일성과 동등성에 대해 설명해 주세요.


1. 동일성 (Identity)

  • 정의: 동일성은 두 객체가 같은 메모리 주소를 참조하고 있는지를 확인합니다.
  • 비교 방법: == 연산자를 사용합니다.
  • 사용 예:
    • 동일성은 객체가 같은 인스턴스인지 확인하는 데 사용됩니다.
public class IdentityExample {
    public static void main(String[] args) {
        String str1 = new String("Hello"); // 새로운 String 객체 생성
        String str2 = new String("Hello"); // 또 다른 String 객체 생성
        String str3 = str1; // str3은 str1과 동일한 참조

        System.out.println(str1 == str2); // false (서로 다른 객체 참조)
        System.out.println(str1 == str3); // true (같은 객체를 참조)
    }
}

 

 

2. 동등성 (Equality)

  • 정의: 동등성은 두 객체의 값이 같은지를 확인합니다.
  • 비교 방법: equals() 메서드를 사용합니다.
  • 사용 예:
    • 동등성은 객체의 내용이나 속성이 같은지 확인할 때 사용됩니다.
    • 특히, String, Integer 등과 같은 클래스는 equals()를 재정의하여 값 비교를 수행합니다.
public class EqualityExample {
    public static void main(String[] args) {
        String str1 = new String("Hello");
        String str2 = new String("Hello");

        System.out.println(str1.equals(str2)); // true (내용이 같음)
    }
}

 

'cs > ODOQ' 카테고리의 다른 글

[ODOQ] 동기(Synchronous), 비동기(Asynchronous)  (0) 2024.12.17
[ODOQ] JPA ID 생성 전략  (2) 2024.12.06
[ODOQ] 로그와 메트릭  (1) 2024.12.03
[ODOQ] 얕은 복사 깊은 복사  (0) 2024.12.02
[ODOQ] 트랜잭션 격리수준  (0) 2024.11.29