반응형
finally 메소드는 GC 가 해당 인스턴스를 가비지로 판단해서 삭제하기 전 실행되기 때문에
객체해제를 언제 실행할지 모른다. 그래서 객체가 소멸되기 전에 다른 자원을 정리할려면
finalize 메서드를 재정의해서 사용한다.
명시적인 종결처리를 통한 메모리 누수를 막기 위함이다.
하지만 이것도 종료자가 바로 호출된다거나 반드시 호출된다는 보장은 없다.
아래 소스와 같이 종료자 함수를 재정의 하여 finally 에서 호출하여준다.
객체해제를 언제 실행할지 모른다. 그래서 객체가 소멸되기 전에 다른 자원을 정리할려면
finalize 메서드를 재정의해서 사용한다.
명시적인 종결처리를 통한 메모리 누수를 막기 위함이다.
하지만 이것도 종료자가 바로 호출된다거나 반드시 호출된다는 보장은 없다.
아래 소스와 같이 종료자 함수를 재정의 하여 finally 에서 호출하여준다.
public void ThrowbaleException(){
try{
throw new Throwable("exception");
}catch(Throwable
e){
dumpTrace(e);
}finally {
finalize();
}
}
protected void finalize(){
try{
super.finalize();// 상위 클래스 종료자 호출
}catch(Throwable
e){}
}
반응형
'자바(JAVA)' 카테고리의 다른 글
velocity java class 객체들을 사용하고자 할 때 (0) | 2009.02.08 |
---|---|
velocity 에서 배열값을 화면에 그대로 표현하고 싶을 (0) | 2009.02.08 |
Velocity 에서 xml 을 사용하여 표현하기 (0) | 2009.02.08 |
싱글톤 생성객체를 재생성하지 못하도록 하자 (0) | 2009.02.05 |
이전 호출함수나, 클래스 등의 정보를 알아오는 방법 (0) | 2009.02.05 |
Java application 에서 velocity 사용하기 (0) | 2009.02.05 |
velocity 에서 macro 정의해서 사용하기 예제 (0) | 2009.02.04 |
window bat 파일을 java application 에서 실행시키고자 할때 (0) | 2009.01.17 |