Object 메서드 살펴보기

UkJJang·2022년 3월 21일
0

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진수로 표현된 객체의 해시코드로 구성된 문자열을 리턴합니다.
  • 각 클래스는 충분한 정보를 담고 있어야 하기 때문에 메서드 오버라이드를 권장합니다.
profile
꾸준하게 성실하게

0개의 댓글