완전히 같은 동일한(identical) 오브젝트와 동일한 정보를 담고 있는(equivalent) 오브젝트에는 차이가 있다. 전자는 동일성비교, 후자는 동등성 비교라고 한다. 동일성은 == 연산자, 동등성은 equals() 메소드를 이용해 비교한다.

동일한 오브젝트는 하나의 오븢젝테에 두 개의 오브젝트 레퍼런스 변수를 갖고 있을 뿐이다. 동등한 오브젝트는 각기 다른 오브젝트가 메모리상에 존재하는 것인데, 오브젝트의 동등성 기준에 때라 정보가 동등하다고 판단하는 경우다.

자바 클래스를 만들 때 equals() 메소드를 따로 구현하지 않으면, 최상위 클래스인 Object 클래스에 구현되어 있는 equals()가 사용된다. Object의 equals()는 동일성을 비교해서 그 결과를 돌려주므로 주의한다.

태그:

카테고리:

업데이트:

댓글남기기