Object 클래스

|

자바에서 모든 클래스는 object를 암시적으로 상속받고 있음. 그런 점에서 object는 모든 클래스의 조상이라고 할 수 있다. 그 이유는 모든 클래스가 공통으로 포함하고 있어야 하는 기능을 제공하기 위해서다. 필요에따라 오버라이딩(overriding)하여 동작을 바꿀수 있음.

 

############### toString ##################

객체를 문자화시키는 메소드.

 

############### equals ##################

객체와 객체가 같은 것인지를 비교하는 API

 

자식 -> 부모 형변환 : 자동 가능(있는것을 숨기는 것)

부모 -> 자식 형변환 : 명시적으로 해줘야함(없는것을 있게하는 것이기 때문!)

 

1. 객체 간에 동일성을 비교하고 싶을 때는 ==를 사용하지 말고 equals를 이용하자.

2. equals를 직접 구현해야 한다면 hashCode도 함께 구현해야 함을 알고 이에 대한 분명한 학습을 한 후에 구현하자.

3. equals를 직접 구현해야 한다면 eclipse와 같은 개발도구들은 equals와 hashCode를 자동으로 생성해주는 기능을 가지고 있다. 이 기능을 이용하는 것을 고려해보자. 아래 그림을 참고하자.

 4. 그 이유가 분명하지 않다면 비교 연산자 == 은 원시 데이터형을 비교할 때만 사용하자.

원시 데이터 형(Primitive Data Type)이란 자바에서 기본적으로 제공하는 데이터 타입으로 byte, short, int, long, float, double, boolean, char가 있다. 이러한 데이터 타입들은 new 연산자를 이용해서 생성하지 않아도 사용될 수 있다는 특징이 있다.

 

############### finalize ##################

객체가 소멸될 때 호출되기로 약속된 메소드

사용할 경우가 거의 없음.

 

가비지 컬렉션(garbage collection) : 어떤 인스턴스를 만들었고, 그것을 변수에 담았다. 그런데 그 변수를 사용하는 곳이 더 이상 없다면 이 변수와 변수에 담겨있는 인스턴스는 더 이상 메모리에 머물고 있을 필요가 없는 것이다. 자바는 이를 감지하고 자동으로 쓰지 않은 데이터를 삭제한다. 따라서 개발자가 사용하지 않는 데이터를 직접 삭제하는 작업을 하지 않아도 되는 것이다. 이것은 어려운 메모리 관리로부터 개발자들의 부담을 경감시킨 도약이라고 할 수 있음.

 

############### clone ##################

어떤 객체가 있을 때 그 객체와 똑같은 객체를 복제해주는 기능

비어있는 인터페이스임에도 불구하고 복제 가능하다는 것을 표시(명시)해줘야함.(cloneable)

'Java' 카테고리의 다른 글

참조  (0) 2019.06.14
상수와 enum  (0) 2019.06.12
예외 - 만들기  (0) 2019.06.10
예외 - 예외 던지기  (0) 2019.06.10
예외 - 문법  (0) 2019.06.07
And