동일성 동등성

한상우·2023년 5월 31일
0

java

목록 보기
10/16

동일성과 동등성

동일성


두 객체가 완전히 같은 경우를 의미, 주소 값이 같음

Stack 에 있는 B와 C는 같은 객체를 참조 즉 B와 C는 동일하다고 말할 수 있음

해당 변수가 동일한지는 == 을 통해서 확인할 수 있다.

추가로 Primitive 타입은 객체가 아니여서 주소가 없음. == 연산자를 사용했을 때 내용이 같으면 동일하다고 함

동등성


두 객체가 같은 정보를 가지고 있는 경우

객체의 주소가 서로 다르더라도 내용이 같으면 동등하다고 이야기 할 수 있음

equals 연산자를 통해 판별

public class App {
    public static void main(String[] args) {
        String str1 = new String("aaa");
        String str2 = new String("aaa");

        System.out.println(str1 == str2); // false
        System.out.println(str1.equals(str2)); // true
    }
}

equals


어떠한 객체든 equals 연산자만 사용하면 두 객체에 대한 동등성 판단이 가능한 것은 아니다.

최상단 객체인 Object에 정의 되어 있는 equals() 메소드는 동일성 판단을 하고 있다.

public boolean equals(Object obj) {
	return (this == obj);
}

equals 메소드를 자식 메소드에서 재정의 하지 않으면, equals() 연산자는 == 과 같다

profile
안녕하세요 ^^

0개의 댓글