[Java] 동일성 (Identity) / 동등성 (equality)
2023. 1. 9. 00:27ㆍ기술 창고/Java
728x90
SMALL
동일성
동일성은 두 개의 객체가 완전히 같은 경우를 뜻한다.
좀 더 늘려서 말하자면 두 객체는 사실상 하나의 객체로 봐도 되고, 주소 값이 같아서 두 변수가 같은 객체를 가리키는 것과 같다.
즉, 주소 값이 동일한 경우를 동일하다고 말한다.
동일한지 알 수 있는 방법은 "==" 연산자를 통해 확인할 수 있다.
참고로 원시타입(Primitive Type)의 변수들은 객체를 참조하고 있는 것이 아닌 원초적인 변수들이므로 == 연산자를 사용했을 때 내용값이 같다면 동일하다고 판단한다.
동등성
두 개의 객체가 같은 정보값을 같고 있는 경우를 뜻한다.
동등성은 변수가 참조하고 있는 객체의 주소가 다르더라도 내용값만 같으면 동등하다고 말한다.
즉, 주소 값이 서로 다르더라도 값만 같으면 동등하다고 말한다.
동등한지 알 수 있는 방법은 "equals" 연산자를 통해 확인할 수 있다.
String str1 = new String("aaa");
String str2 = new String("aaa");
System.out.println(str1 == str2);
System.out.println(str1.equals(str2));
동일한 값을 가지고 있지만 new 로 새로 객체를 만들어 할당하였기 때문에 두 변수는 == 연산자로 비교하게 되면 서로 다른 주소를 가지고 있기 때문에 false 의 결과를 가진다.
equals 연산자로 비교하게 되면 값이 동일하기 때문에 true 의 결과를 가진다.
728x90
반응형
LIST
'기술 창고 > Java' 카테고리의 다른 글
[Java] 자바 컴파일 과정 (0) | 2023.01.12 |
---|---|
[Java] JVM (Java Virtual Machine) (1) | 2023.01.11 |
[Java] Java Map 내부 구현 파악 (0) | 2023.01.06 |
[Java] Garbage Collector (0) | 2023.01.06 |
[Java] Call by Value / Call by Reference (0) | 2023.01.06 |