java/API 정리

Object 클래스 주요 메서드 정리

aphyrince 2024. 11. 16. 11:31
반응형
리턴 타입 메서드명 설명
boolean equals(Object obj) 두 객체를 '논리적'으로 비교한 값을 리턴. 

객체의 참조 주소가 아닌 객체가 가진 값을 기준으로 동등함을 판단.
int hashCode() 객체의 메모리 번지를 이용해 해시코드를 만들어 반환.

HashSet, HashMap, Hashtable 에서 hashCode(), equals()를 둘 다 사용해 같은 객체인지 판단.

객체의 동등 비교를 위해서는 Object의 equals() 메소드만 재정의하지 말고 hashCode() 메소드도 재정의해서 논리적 동등 객체일 경우 동일한 해시코드가 리턴되도록 해야한다.
String  toString() 객체를 문자열로 표현한 값을 리턴.

Object 클래스의 toString()은 "클래스명@16진수해시코드" 로 구성된 문자정보 리턴.   ("java.lang.Object@abcde213")

Object의 하위클래스는 toString() 메서드를 재정의하여 간결하고 유익한 정보를 리턴하도록 되어있다.

System.out.println() 등의 매개변수로 객체가 주어졌을 때, 자동으로 객체의 toString() 리턴값을 받아 출력한다.
protected Object clone() 원본 객체와 동일한 필드값을 가지는 새로운 객체를 생성해 리턴.

Object clone()은 얇은 복제를 하기 때문에 기본타입의 필드는 값이 복사되고, 객체 타입의 필드는 참조를 복사함.

이 메서드로 객체를 복사하려면 원본 객체는 반드시 java.lang.Cloneable 인터페이스를 구현해야 함.
final Class<?> getClass() 이 객체의 런타임 클래스를 리턴
final void notify() 이 객체를 기다리는 스레드 하나를 깨움
final void notifyAll() 이 객체를 기다리는 스레드를 모두 깨움
final void wait() 현재 스레드를 깨워질 때까지 중단함.
final void  wait( long timeoutMillis ) 현재 스레드가 깨워지거나 { long timeoutMillis } 가 경과할 때까지 기다림.
final void wait( long timeoutMillis, int nanos) 현재 스레드가 깨워지거나 { long timeoutMillis } 가 경과할 때까지 기다림.

 

반응형