Java의 Object
클래스는 모든 클래스의 최상위 클래스로, 자바의 모든 객체가 기본적으로 상속받는 클래스입니다. Object
클래스에는 여러 유용한 메서드가 포함되어 있는데, 이를 통해 객체 간의 상호작용, 정보 검색, 그리고 객체의 메모리 관리 등이 가능합니다.
toString()
클래스이름@해시코드
형식의 문자열을 반환하지만, 이 메서드는 종종 객체의 상태를 더 잘 설명하는 문자열로 오버라이드(재정의)됩니다. 예를 들어, 커스텀 클래스에서 이 메서드를 오버라이드해 객체의 특정 필드 값을 문자열로 표현할 수 있습니다.equals(Object obj)
==
연산자를 사용하여 두 객체 참조가 같은 객체를 가리키는지 확인합니다. 하지만, 객체의 동등성을 논리적으로 평가하도록 이 메서드를 오버라이드할 수 있습니다. 예를 들어, 두 Person
객체가 동일한 id
를 가지고 있다면 동등하다고 할 수 있습니다.hashCode()
hashCode()
메서드는 equals()
메서드와 함께 사용되며, 객체가 사용하는 해시 기반 컬렉션(예: HashMap
, HashSet
)에서 객체의 저장 위치를 결정하는 데 사용됩니다. equals()
메서드를 오버라이드할 때는 hashCode()
도 함께 오버라이드하는 것이 중요합니다.getClass()
Class
객체를 반환합니다. 이 메서드는 리플렉션을 사용하여 런타임에 객체의 클래스 정보를 얻는 데 사용될 수 있으며, 객체의 클래스 타입을 확인할 때 유용합니다.clone()
clone()
메서드는 Cloneable
인터페이스를 구현하는 클래스에서 사용할 수 있으며, 깊은 복사나 얕은 복사를 구현하기 위해 오버라이드될 수 있습니다.wait()
, notify()
, notifyAll()
wait()
는 객체의 잠금을 해제하고 스레드를 대기 상태로 전환시키며, notify()
와 notifyAll()
은 대기 중인 스레드들을 깨우는 역할을 합니다.이러한 Object 클래스의 주요 메서드들은 Java에서 객체를 다루는 데 기본적인 도구로 작용하며, 효과적인 Java 프로그래밍을 위해 이해하고 사용할 수 있어야 합니다.