-
동등하다?(동등성) 동일하다?(동일성) 개념 정리IT 2025. 4. 17. 14:05728x90반응형
✅ 동등성과 동일성의 차이 (Equality vs Identity)
Java를 포함한 객체지향 프로그래밍 언어에서는 동등성(equality)과 동일성(identity)을 구분하는 것이 매우 중요합니다. 겉보기에는 같아 보여도 내부적으로는 완전히 다른 의미를 가지기 때문이죠.
🧠 1. 용어 정리
구분 설명 동일성 (Identity) 두 객체가 완전히 같은 객체인지 확인. 즉, 메모리 주소가 같은지를 비교. Java에서는 ==
연산자를 사용.동등성 (Equality) 두 객체의 내용이 같은지를 비교. Java에서는 equals()
메서드를 오버라이딩하여 비교.🔍 2. 자바 코드 예제로 이해하기
public class Person { private String name; public Person(String name) { this.name = name; } // equals 메서드 오버라이딩 @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null || getClass() != obj.getClass()) return false; Person person = (Person) obj; return this.name.equals(person.name); } public static void main(String[] args) { Person p1 = new Person("Alice"); Person p2 = new Person("Alice"); Person p3 = p1; System.out.println("p1 == p2: " + (p1 == p2)); // false (동일성) System.out.println("p1.equals(p2): " + p1.equals(p2)); // true (동등성) System.out.println("p1 == p3: " + (p1 == p3)); // true (동일성) } }
📌 3. 요약 정리
==
→ 동일성 확인 (메모리 주소 비교)equals()
→ 동등성 확인 (내용 비교)- 커스텀 클래스에서는
equals()
메서드를 오버라이딩해야 의미 있는 동등성 비교가 가능
728x90반응형'IT' 카테고리의 다른 글
정렬 알고리즘 (Sorting algorithm) 종류 및 구현 알아보기! (0) 2025.04.23 RDBMS 와 NoSQL 비교해 보기 (0) 2025.04.17 Git 브랜치 전략에 대해 알아보자! (+ git flow) (0) 2025.04.16 Call by value?? Call by reference?? 알아보자 (1) 2025.04.09 UTF-8 vs EUC-KR 알아보자 (0) 2025.04.08