class Universe {}

위 코드는 다음과 같다고 볼 수 있다.

class Universe extends Object {}

이처럼 자바의 모든 클래스는 Object를 상속받아 사용하고 있다. 그러한 이유는 모든 클래스가 공통으로 포함하고 있어야 하는 기능을 제공하기 위해서다.

Object 클래스가 가지고 있는 메소드는 다음과 같다.

반환타입 메소드 명
protected Object clone()
오브젝트의 복사를 만든다
boolean equals(Object obj)
이 오브젝트와 같은지 알려준다
protected void finalize()
가비지 컬렉터가 참조를 하지 않는 오브젝트라고 판단했을 때 호출된다
Class<?> getClass()
이 오브젝트의 런타임 클래스를 반환한다
int hashCode()
오브젝트의 해쉬 코드 값을 반환한다
void notify()
잠들어 있던 스레드 중 하나를 골라 깨운다
void notifyAll()
잠들어 있던 스레드를 모두 깨운다
String toString
오브젝트를 스트링으로 나타내는 값을 반환한다
void wait()
갖고 있는 고유 락을 해제하고 스레드를 잠들게 한다
void wait(long timeout)
void wait(long timeout, int nanos)