JAVA

[JAVA] Object 클래스 (자바 독학하기22)

자라는레몬 2021. 7. 16. 22:38
반응형

1. finalize methods

아무도 참조하는 않는 인스턴스가 가비지 컬렉션에 의해 소멸되기 전에 자동으로 호출되는 메소드이다.

형태는 다음과 같다.

그리고 이의 사용 예는 다음과 같다.

이 메소드는 사용하지 않는 것이 좋기 때문에 그냥 알아만 두면 된다.

 

 

2. equals methods

이 메소드의 형태는 다음과 같다.

이 메소드는 참조 변수의 참조값을 비교하는 메소드이다.

== 연산자와 비슷하게 보이지만 다른점이 있다.

위와같이 == 연산자는 참조대상을 비교하지만 equals 메소드는 인스턴스의 내용이 같은지를 판단한다.

 

 

3. clone methods

clone 메소드는 위와같이 정의되며 이 메소드가 호출되면, 호출된 메소드가 속한 인스턴스의 복사본이 생성되고, 이렇게 만들어진 복사본의 참조 값이 반환된다.

이 메소드는

interface Clonable

이라는 인터페이스를 구현한 인스턴스를 대상으로만 호출할 수 있다.

이와 같이 clone 메소드를 이용해 인스턴스를 복사할 수 있다.

여기서 Clonable 인터페이스는 마커 인터페이스의 역할을 하는 것이다.

 

해당 reference 문서를 읽어보면 shallow copy 와 deep copy 라는 말이 나온다.

이는 인스턴스는 복사해 오지만 인스턴스의 참조 값이 제대로 복사되지 않는 것이다.

deep copy 를 위해서는 오버라이딩한 clone 메소드 안에서 clone 메소드를 호출하여 참조변수를 생성하고 이 참조변수에 참조 값을 복사하는 작업을 해야한다.

반응형