java object class
java.lang 패키지 안에 들어있는 클래스이며, 모든 자바 클래스의 최고조상 클래스 이다.
java.lang 패키지는 import 문을 사용하지 않고, 클래스 이름만으로 바로 사용가능하다.
따라서, 자바의 모든 클래스는 Object 클래스의 모든 메소드를 바로 사용할 수 있다.
Object 클래스는 필드를 가지지 않으며 총 11개의 메소드로 구성되어 있다.
toString()
해당 인스턴스에 대한 정보를 문자열로 반환한다.
Animal dog = new Animal();
Animal cat = new Animal();
System.out.println(dog.toString());
System.out.println(cat.toString());
실행결과는 클래스이름@주소해시값으로 출력된다.
equals()
해당 인스턴스를 매개변수로 전달받는 참조 변수와 비교하여, 그 결과를 반환
비교대상은 참조변수가 가리키는 값이기에 서로 다른 두 객체는 언제나 false 를 반환한다.
Animal dog = new Animal();
Animal cat = new Animal();
System.out.println(dog.equals(cat));
dog = cat; // 두변수가 같은 주소를 가리키도록
System.out.println(dog.equals(cat));
etc.
- clone()
해당 객체의 복제본을 생성하여 반환함 (객체의 값만 가져오므로 배열에서는 제대로 복제되지 않음. 배열에서는 배열 클래스에서 따로 재정의 필요)
- equals()
해당 객체와 전달받은 객체가 같은지 여부를 반환함.
- finalize()
해당 객체를 더는 아무도 참조하지 않아 가비지 컬렉터가 객체의 리소스를 정리하기 위해 호출함.
- getClass()
해당 객체의 클래스 타입을 반환함.
- hashCode()
해당 객체의 해시코드를 반환함.
- notify()
해당 객체의 대기(wait)하고 있는 하나의 스레드를 다시 실행할 때 호출함.
- notifyAll()
해당 객체의 대기(wail)하고 있는 모든 스레드를 다시 실행할 때 호출함.
- toString()
해당 객체의 정보를 문자열로 반환함.
- wait()
해당 객체의 다른 스레드가 notify()나 notifyAll() 메소드를 실행할 때까지 현재 스레드를 일시적으로 대기(wait)시킬때 호출함
- wait(long timeout)
해당 객체의 다른 스레드가 notify()나 notifyAll()메서드를 실행하고나 전달받은 시간이 지날때까지 현재 스레드를 일시적으로 대기(wait)시킬때 호출함.
- wait(long timeout, int nanos)
해당 객체의 다른 스레드가 notify()나 notifyAll() 메소드를 실행하거나 전달받은 시간이 지나거나 다른 스레드가 현재 스레드를 인터럽트할때까지 현재 스레드를 일시적으로 대기(wait)시킬때 호출함.