Please Enable JavaScript!
Gon[ Enable JavaScript ]

반응형
finally 메소드는 GC 가 해당 인스턴스를 가비지로 판단해서 삭제하기 전 실행되기 때문에
객체해제를 언제 실행할지 모른다. 그래서 객체가 소멸되기 전에 다른 자원을 정리할려면
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){}

}


반응형
Posted by 녹두장군1
,