동일성

    [Java] 동일성(identity)과 동등성(equality)

    개발을 하다보면 객체나 변수를 비교할일이 많이 있습니다~! 어떨땐 주로 == 로 비교를 하고 어떨땐 equals() 함수를 써서 비교하는데요 이 비교문의 의미와 비교문으로 동일성과 동등성을 어떻게 비교하는지 알아보겠습니다. 동일성 (identity) 동일성은 동일하다는 뜻으로 두 개의 객체가 완전히 같은 경우를 의미합니다. 여기서 완전히 같다는 뜻은 두 객체가 바라보는 메모리 주소가 똑같다는 것이죠! 따라서 사실상 하나의 객체로 봐도 무방합니다. 위 그림을 볼까요? 자바에서 객체가 메모리에 저장될때 실제 정보는 jvm에 할당된 heap 메모리에 저장되고 그 객체의 주소는 스택 영역에 저장됩니다. 우리가 DannyObject do1 = new DannyObject();같은 코드를 써서 새로운 객체를 생성하..