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()와 동일한 기능을 가진 메서드가 있다.