Java

Object class의 메서드

기초공사 2023. 5. 30. 19:00

 

Object class의 메서드 설명
protected Object clone() 객체의 복사본을 반환한다.
public boolean equals( Object obj) 두 객체의 hashcode()가 같으면 true 다르면 false를 반환한다.
protected void finalize() 객체가 소멸할 때 GC에 의해 자동으로 호출된다.
public Class getClass() 객체 자신의 클래스 정보를 담고 잇는 Class인스턴스를 반환한다
public int hashCode() 객체의 해시코드를 반환한다. 해시코드란 객체의 주소를 통해 만들어진 중복이 없는 식별값이다.
public String toString() 객체의 정보를 문자열로 반환한다. ( getclass().getclass() + "@" + IntegerTohexString(hashCode()) ) 
public void notify 객체 자신을 사용하려고 기다리는 하나의 쓰레드를 깨운다.
public void notifyAll() 객체 자신을 사용하려고 기다리는 모든 쓰레드를 깨운다.
public void wait(),
public void wait(long timeout),
public void wait(long timeout, nanos)
다른 쓰레드가 notify()나 notifyAll()을 호출할 때까지 현재 쓰레드를 무한히 혹은 지정된 시간 동안(timeout, nanos)동안 기다리게 만든다. timeout은 1000분의 1초이며 nanos는 1000000000분의 1초이다.(10^9분의 1초)

 

※ hashCode()는 객체의 주소를 기반으로 중복 없는 정수값을 반환해 준다. 하지만,  32bit JVM의 경우 반환형이 int라 문제 될 것이 없었지만 64bit JVM를 사용하는 경우 hashCode()의 값에 중복이 생길 수 있다고 한다.

 

※ 만약 hashCode()를 오버라이딩 한 상태에서 기존의 hashCode()를 사용하고 싶을 경우엔

System.identityHashCode( Object x )  라는 hashCode()와 동일한 기능을 가진 메서드가 있다.