일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- appcompatactivity
- AsyncListDiffer
- 리사이클러뷰풀
- GetX
- apk 빌드 과정
- flutter
- 디자인 패턴
- 안드로이드
- 운영체제
- 데코레이터 패턴
- 프로세스
- Android
- 물리 메모리
- http 역사
- viewModelScope
- 절대 주소
- appcompatacitivity
- Kotlin
- 자이고트
- 내부 단편화
- 상태관리
- AAC
- http발전과정
- NestedScrollView
- recyclerview
- Dispatchers
- DiffUtil
- 플로이드워셜
- 뷰홀더
- 리사이클러뷰
- Today
- Total
hong's android
[Java] java.lang.Object 본문
java.lang.Object란
java.lang 패키지에는 프로그래밍을 위한 다양한 클래스들이 모여있고 이를 활용 할 수 있다.
(다른 패키지와 다르게 import 구문 없이 사용 가능하다.)
그중에서 object는 클래스들의 가장 상위 클래스이고 프로그래밍을 위한 다양한 메소드들을 제공한다.
1. equals()
동일한 객체인지 판단한다. 기본적으로 == 연산자를 통해 객체의 동등함을 판단하는데 이때 객체의 주소값을 갖고 판단한다. 그렇기에 두 객체의 내용이 같다는것을 판단하기위해선 따로 equasl() 메소드를 오버라이드해서 사용해야한다.
(Collection 프레임워크 몇몇 클래스는 객체의 동등성을 판단하기위해서 객체의 hashcode() -> equals() 메소드를 통해 확인하기 때문에 위 프레임워크를 가용하는경우 hashcode(),equals()를 함께 오버라이드 해서 사용해야한다.)
2.hashcode()
메모리 번지를 이용해서 해시값을 반환해준다.
3.toString()
객체의 정보를 문자열로 반환해준다. @왼쪽에 클래스 이름, 오른쪽에 해시코드 값을 보여준다.
내부적으로 getClass() 메소드와 hashCode() 메소드를 호출하는것을 확인 할 수 있다.
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
예) object.Book@16f65612
4.finalize()
특정 객체가 참조관계가 더이상 없을때 가비지 컬렉터가 객체를 회수할때 해당 메소드를 호출한다.
예측이 불가능하고, 수행을 보장하지 않는다. 그렇기에 finalize 메소드에 리소스들을 해제하는 코드들을
작성하는건 위험하다.
단점 : finalize()를 오버라이드해서 재정의 하는경우 성능이 저하된다.
하지만 반드시 해제해야하는 리소스를 해제하지 못한경우 최종 방어수단이 될 수 있다.
5.getClass()
아래와 같이 메소드는 Class 클래스를 반환해준다.
public final native Class<?> getClass();
5.notify, wait
Reference.
https://codechacha.com/ko/java-hashcode/
'Develop > Java' 카테고리의 다른 글
[자바] 오브젝트풀링 / Executors 클래스 (0) | 2023.02.28 |
---|---|
[자바] object 클래스와 String 클래스 (0) | 2023.02.28 |
[Java] Collection Framework (0) | 2023.02.11 |
[Java] 동시성 문제와 synchronized의 성능 (0) | 2023.02.11 |
[Java] 제네릭, 래퍼 클래스 (0) | 2023.02.11 |