모든 객체의 조상, Object 에 대해 알아보자.
Object 는 크게 두 개의 메서드를 가진다. equals와 hashcode이다.
먼저 equals는 파라미터로 들어오는 객체와 '동일한 객체인지' 비교해서 boolean을 반환한다.
public boolean equals(Object obj) {
return (this == obj);
}
즉 동일한 레퍼런스를 참조하는 진짜로 똑같은 객체일 때만 true 다.
hashCode 함수는 객체의 해시값을 반환하는 함수이다.
해시라는 단어만 들어도 알 수 있듯, 객체마다 모두 다른 값을 반환해준다.
public native int hashCode();
오잉? 이 메서드는 구현부가 없고 native라는 특이한 키워드를 가지고 있다.
native 란 자바가 아닌 언어(C, C++ 등)로 구현한 후 사용할 때 필요한 키워드라고 한다.
자바 개발자라면 기본으로 알아야 하는 내용이라고 하니.. 나도 알아두자.
'Java' 카테고리의 다른 글
Collections.synchronizedMap(hashMap) 과 ConcurrentHashMap 의 차이 (0) | 2022.10.23 |
---|---|
java의 HashMap 해시 충돌 해결 (1) | 2022.01.03 |