ObjectJava2022. 12. 10. 12:03
Table of Contents
728x90
728x90
Object
- java.lang 패키지 중 가장 많이 사용되는 클래스(모든 자바 클래스들의 최고 조상 클래스)
- 필드를 가지지 않으며 11개의 메서드로 구성
메서드 | 설명 |
protected Object clone() | 해당 객체의 복사본을 생성 |
boolean equals(Object obj) | 두 객체가 같은지 |
protected void finalize() | 가비지 컬렉터가 객체의 리소스를 정리하기 위해 호출 |
Class<T>getClass() | 클래스 타입 반환 |
int hashCode() | 해시 코드 반환 |
void notify() | 대기하고 있는 하나의 스레드를 다시 실행할 때 |
void notifyAll() | 대기하고 있는 하나의 모든 스레드를 다시 실행할 때 |
String toString() | 객체의 정보를 문자열로 반환 |
void wait() | 스레드가 notify()나 notifyAll()를 실행할 때까지 현재 스레드를 일시적으로 대기시킬 때 |
void wait(long timeout) | 스레드가 notify()나 notifyAll()를 실행하거나 전달받은 시간이 지날 때까지 일시적으로 대기시킬 때 호출함. |
void wait(long timeout, int nanos) | 스레드가 notify()나 notifyAll()를 실행하거나 전달받은 시간이 지나거나 다른 스레드가 현재 스레드를 인터럽트(interrupt) 할 때까지 일시적으로 대기시킬 때 |
Clone
- 데이터의 보호를 이유로 Cloneable 인터페이스를 구현한 클래스의 인스턴스가 사용 가능
- 필드값만을 복사하기 때문에 필드값이 배열이나 인스턴스면 제대로 복제할 수 없다
→ 해당 클래스에서 오버라이딩하여 재정의
class cloneExam implements Cloneable{
@Override
protected cloneExam clone(){
Object ob = null;
try {
ob = super.clone();
}catch(CloneNotSupportedException e) {
}
return (cloneExam)ob;
}
}
equals
- 해당 인스턴스를 매개변수로 전달받는 참조 변수와 비교
- 서로 다른 두 객체는 언제나 false
ExamMain car01 = new ExamMain();
ExamMain car02 = new ExamMain();
System.out.println(car01.equals(car02));
car01 = car02;
System.out.println(car01.equals(car02));
// Console
false
true
finalize
- 자바 9부터 사용불가능
- 배열이나 객체를 Garbage Collector를 사용해 힙 영역에서 제거
- 사용자가 해당 메서드를 직접 사용하려면 오버라이딩
Garbage Collection(GC)
- 메모리 관리법 중 하나
- 시스템에서 더이상 사용하지 않는 동적 할당된 메모리 블럭을 찾아 자동으로 다시 사용 가능한 자원으로 회수
Garbage Collector(JVM에 있음) : 가비지 컬렉션을 수행하는 부분
toString
- 인스턴스에 대한 정보를 문자열로 반환 → (클래스 이름/구분자 '@'/8자리 16진수)의 해시값
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!