[JAVA] Object 클래스 정리

2019. 9. 30. 17:37 JAVA/Java

Object 클래스 정리


1. Java.lang 패키지


java.lang은 자바 프로그램에서 가장 많이 사용되는 패키지로서 자바 프로그램내에 'import' 문을 사용하지 않아도 자동으로 포함된다. 그만큼 자바 프로그램의 기본이 되는 클래스들과 인터페이스들이 포함되어 있다.


다음은 java.lang 패키지의 클래스 구조도이다.




물론 java.lang 패키지에는 더 많은 클래스들이 있다.  더 많은 클래스는 여기서 확인하자.  JAVA API DOC : Java.lang


Object 클래스는 java.lang 패키지 내의 최상위 클래스이며, String 클래스는 변하지 않는 문자열을 다룰 때, StringBuffer 클래스는 내용이 계속 변하는 문자열을 다룰 때 사용될 수 있다.



2. Object 클래스


java.lang.Object 클래스는 자바 API의 모든 클래스와 사용자가 정의한 모든 클래스의 최상위 클래스이다. 즉, 모든 자바 클래스들은 Object 클래스로부터 상속받는다.


사용자가 클래스를 정의할 때 클래스 선언부에 명시적으로 extends java.lang.Object를 지정하지 않아도 자동으로 상속받게 된다. 다시 말해 Object 클래스의 모든 메서드와 변수는 다른 모든 클래스에서도 사용 가능할 수 있다는 말이다.


* Object 클래스의 주요 메소드


 메소드

설 명 

boolean equals(Object obj) 

 두 개의 객체가 같은지 비교하여 같으면 true를, 같지 않으면 false를 반환한다.

String toString() 

현재 객체의 문자열을 반환한다. 

protected Object clone() 

객체를 복사한다. 

protected void finalize() 

가비지 컬렉션 직전에 객체의 리소스를 정리할 때 호출한다. 

Class getClass() 

객체의 클래스형을 반환한다. 

int hashCode() 

객체의 코드값을 반환한다. 

void notify() 

wait된 스레드 실행을 재개할 때 호출한다. 

void notifyAll() 

wait된 모든 스레드 실행을 재개할 때 호출한다. 

void wait() 

스레드를 일시적으로 중지할 때 호출한다. 

void wait(long timeout) 

주어진 시간만큼 스레드를 일시적으로 중지할 때 호출한다. 

void wait(long timeout, int nanos) 

주어진 시간만큼 스레드를 일시적으로 중지할 때 호출한다.


equals 메소드는 두 개의 객체를 참조하는 참조값이 같은 객체일 때 true를 반환하므로, 참조하는 객체의 주소값이 같은 경우를 말한다.


finalize()의 경우 가비지 컬렉션 직전에 객체의 리소스를 정리할 때 호출하고, 오버라이딩할 수 있다고 하지만, 뭔가 문제가 있는거 같습니다.

제대로 테스트 및 확인 후에 적절한 방법에 사용해야 될거 같습니다.


자세한 정보는 JAVA API DOC 를 확인합시다.


JAVA API DOC : Object Class



출처: https://hyeonstorage.tistory.com/178?category=557602 [개발이 하고 싶어요]