‘JAVA에서 두 개의 오브젝트가 같은가’ 라는 말은 주의해서 사용해야 한다. JAVA에서는 두 개의 오브젝트가 완전히 같은 동일한 (Identical) 오브젝트라고 말하는 것과, 동일한 정보를 담고 있는 (Equivalent) 오브젝트라고 말하는 것은 분명한 차이가 있다. 전자는 동일성(Identical) 비교라 하고, 후자는 동등성(Equivalent) 비교라고 한다. 동일성은 == 연산자로 동등성은 equals() 메소드를 이용해 비교한다. 두 개의 오브젝트가 동일하다면 사실은 하나의 오브젝트만 존재하는 것이고 두 개의 오브젝트 레퍼런스 변수를 갖고 있을 뿐이다. 두개의 오브젝트가 동일하지는 않지만 동등한 경우에는 두 개의 각기 다른 오브젝트가 메모리상에 존재하는 것인데, 오브젝트의 동등성 기준에 ..