본문 바로가기
old/Java

java.lang.Object

by 물 개 2020. 11. 16.

Object 클래스

자바의 최상위 부모 클래스 = 자바의 모든 클래스는 Object 클래스의 자식/자손 클래스이다.

메소드 설명
equals(Object obj)
비교 연산자인 == 과 동일한 결과를 리턴.
객체가 저장된 메모리의 번짓수를 비교한다.
사용시 모든 객체가 매개값으로 제공될 수 있기 때문에 instanceof 연산자로 기준 객체와 동일한 타입인지 먼저 확인해주는 것이 좋다.

단, String 클래스에서는 오버라이딩되어 문자열이 동일한지 조사한다.

hashCode()
객체의 메모리 번지를 이용해 해시코드를 만들어 리턴.
객체 해시코드란 객체를 식별할 하나의 정수값(객체 정보값)이다. 즉, 객체마다 다른 값을 가지고 있다.
객체의 동등 비교를 위해서는 hashCode() 메소드도 논리적 동등 객체일 경우 동일한 해시코드가 리턴되도록 재정의해서 사용해야한다.

toString()
객체의 문자 정보(객체를 문자열로 표현한 값)를 리턴한다.
오버라이딩 되지 않은 기본 Object 클래스의 toString() 메소드는 "클래스명@16진수해시코드"를 리턴한다.
Date 클래스에서는 현재 시스템의 날짜와 시간 정보를,
String 클래스에서는 저장하고 있는 문자열을 리턴하도록 오버라이딩 되어있다.

clone()
원본 객체의 필드값과 동일한 값을 가지는 새로운 객체를 생성한다.
(원본 객체를 안전하게 보호하기 위해 사용)
- 얕은 복제(thin clone, shallow copy) : 단순히 필드값을 복사해서 객체를 복제.
                                                  참조형 필드는 메모리 주소가 복사돼어 원본 객체와 같은 참조 객체를 쓰게 됨.
- 깊은 복제(deep clone, deep copy) : 참조하고 있는 객체도 복제. 원본 객체와 다른 참조 객체 사용.

Object 클래스의 clone() 메소드는 얕은 복제를 사용하며,
원본 객체가 java.lang.Cloneable 인터페이스를 구현하고 있어야 사용 가능.

finalize()
객체의 소멸자. Garbage Collector는 이 객체의 소멸자를 실행시켜서 힙 영역에서 객체를 지운다.
Object의 finalize() 메소드는 기본적으로 실행 내용이 없어서 재정의해서 사용해야 한다.

 

'old > Java' 카테고리의 다른 글

java.lang.Class  (0) 2020.11.16
java.lang.System  (0) 2020.11.16
java API 도큐먼트  (0) 2020.11.16
사용자 정의 예외와 예외 발생시키기, 예외 정보 얻기  (0) 2020.11.15
Java 예외(exeception) 종류 (일부)  (0) 2020.11.15

최근댓글

최근글

skin by © 2024 ttuttak