태그 보관물: identityHashCode()

Object.hashCode() vs System.identityHashCode(Object x)

보통 객체에 대한 고유값으로 hashCode() 메쏘드를 많이 사용한다. 최 상위 타입인 Object의 hashCode()는 Override가 가능하기 때문에, 고유값이 아닐경우가 잠재적으로 존재하게 된다. 이런 문제(?)를 해결할 수 있도록 System.identityHashCode(Object x)라는 메서드를 제공하고 있다.

그래서, 기존의 아래와 같은 방식을..

System.out.println(aa.hashCode());

아래의 코드로 바꿔야 한다.

System.out.println(System.identityHashCode(aa));

참고로, 아래처럼 Object가 null인 경우는 0이다.

System.out.println(System.identityHashCode(null));