Object
- 자바에서 모든 클래스는 Object를 암시적으로 상속받고 있습니다. 즉 모든 클래스의 조상이라고 말할 수 있습니다
- Object클래스의 맴버들은 모든 클래스에서 바로 사용이 가능하며 맴버 변수는 존재하지 않고 메서드만 가지고 있습니다.
registerNatives
private static native void registerNatives();
static {
registerNatives();
}
- OpenJDK 구현에서 Object클래스의 네이티브 메서드를 등록하는 코드입니다.
hashCode
public native int hashCode();
- 객체의 해시코드 값을 리턴합니다.
- 해시란 HashTable 배열을 이용하여 데이터를 저장하고 주소값을 저장하기 때문에 많은 양을 저장하고 빠른 검색이 가능합니다.
- 각 개체의 hashCode는 유일하며 같은 값을 가질 수 없습니다. 또한 객체의 값이 변경 되어도 hashCode값은 변하지 않습니다.
equals
public boolean equals(Object obj) {
return (this==obj);
}
- 객체가 다른 객체와 같은지 아닌지를 나타냅니다. 즉 주소값을 비교합니다.
- 두개의 래퍼런스가 동일한 인스턴스를 가리키고 있다면 true 아니면 false를 리턴합니다.
toString
public String toString() {
return getClass().getName()+"@"+Integer.toHexString(hashCode());
}
- 객체를 String 타입으로 리턴합니다.
- 각 인스턴스 객체의 클래스 이름 "@" 기호, 16진수로 표현된 객체의 해시코드로 구성된 문자열을 리턴합니다.
- 각 클래스는 충분한 정보를 담고 있어야 하기 때문에 메서드 오버라이드를 권장합니다.