기본 타입 변수의 ==, != 연산은 변수의 값이 같은지, 아닌지를 조사하지만 참조 타입 변수들 간의 == , != 연산은 동일한 객체를 참조하는지, 다른 객체를 참조하는지 알아볼 때 사용된다. 참조 타입 변수의 값은 힙 영역의 객체 주소이므로 결국 주소 값을 비교하는 것이 된다. 동일한 주소 값을 갖고 있다는 것은 동일한 객체를 참조한다는 의미이다. 따라서 동일한 객체를 참조하고 있을 경우 == 연산의 결과는 ture이고 != 연산의 결과는 false이다.
상기 그림에서 refVar1과 refVar2는 서로 다른 객체를 참조하고 있으므로 == 및 != 연산의 결과는 다음과 같다.
refVar2와 refVar3는 동일한 객체2를 참조하고 있으므로 == 및 != 연산의 결과는 다음과 같다.
==와 != 연산자로 객체를 비교하는 코드는 일반적으로 if 문에서 많이 사용된다. 다음은 변수 refVar2 와 refVar3 이 같은 객체를 참조할 경우 if 블록을 실행하도록 코딩한 것이다.
'legacy' 카테고리의 다른 글
이것이java다 5.1 참조타입 데이터타입 분류 (0) | 2023.04.16 |
---|---|
이것이java다 5.2장 메모리 사용 영역 (0) | 2023.04.16 |
이것이java다 5.4장 null과 nullPointerException (0) | 2023.04.16 |
이것이java다 5.5장 String 타입 (0) | 2023.04.16 |
이것이java다 5.6장 배열타입 (0) | 2023.04.16 |