모든 클래스의 최고 조상
메서드 11개로 구성되어 있음
notify(), wait() 등은 쓰레드 관련 메서드
Reflection API 를 알아보자!
객체 자신(this)과 주어진 객체(obj)를 비교한다.
객체의 주소(참조변수 값)를 비교하여, 주소가 같으면 true, 다르면 false를 리턴한다
인스턴스 변수의 값을 비교하도록, equals()를 오버라이딩 해서 사용해야 한다.
객체의 지문이라고도 함 (객체마다 다른 값)
객체의 해시코드(hash code)를 반환하는 메서드
해싱 알고리즘에서 사용. (컬렉션 프레임웍)
Object 클래스의 hashCode()는 객체의 주소를 int로 변환해서 반환
equals()를 오버라이딩 하면, hashCode()도 오버라이딩 해야 함
오버라이딩 이전 기능이 필요할 때
32bit JVM 에서는, 주소값이 int type(4byte)이다. -> hashCode()를 사용할 때 문제 없음
64bit JVM 에서는, 주소값이 long type(8byte)이다. -> hashCode() 사용 시, 반이 짤리기 때문에, 중복 값이 발생할 수 있음.
public class Object {
...
// native method : OS의 메서드 (주로 C언어로 작성)
public native int hashCode(); // OS의 메서드를 호출하는 것
}
객체를 문자열로 변환하기 위한 메서드
객체 == iv 집합 -> 객체를 문자열로 변환한다 == iv 값을 문자열로 변환한다
public String toString() { // Object 클래스의 toString()
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}