Object Class

  • 자바의 최상위 클래스
  • 자바의 모든 클래스는 Object의 파생 형식이다.

자바의 모든 객체는 Object의 자식 객체이다.

  • extends를 생략한 클래스의 직접 상위 클래스는 자동으로 Object가 됩니다.
  • 생성자의 첫 문장에 this(...)나 super(...)가 없으면 컴파일러가 super() 호출을 암묵적으로 추가합니다.
  • 따라서 해당 클래스의 생성자 바이트코드에 Object.<init>() 호출이 나타납니다.
  • 다른 클래스를 상속했다면 Object가 아니라 직접 상위 클래스의 생성자를 먼저 호출하며, 생성자 호출 체인을 따라 최종적으로 Object까지 도달합니다.

메서드

  • equals() : 매개변수로 전달된 참조자와 this가 가리키는 대상이 같은 값인지 비교
  • hashCode() : 객체 식별을 위한 고유 해시결과 값을 반환, 해당 반환값은 Unique
  • toString() : 클래스명@해시코드 형식의 문자열을 반환
  • getClass()

equals() 재정의

특정 객체를 여러 참조자를 갖지 않는 이상 비교인자는 무조건 false이다.
그러나 동일성이 아닌 동등성에 대한 비교를 하기 위해서 주로 재정의 과정을 거친다.