finalize () 방법

1310 단어
From:runoob.com
자바는 대상이 쓰레기 수집기에서 분리되기 전에 호출되는 방법을 정의할 수 있습니다. 이 방법은finalize () 라고 하는데, 이것은 회수 대상을 제거하는 데 사용됩니다.
예를 들어finalize () 를 사용하면 대상이 열린 파일이 닫혔는지 확인할 수 있습니다.
finalize () 방법에서 대상을 삭제할 때 실행할 동작을 지정해야 합니다.
finalize () 일반 형식은 다음과 같습니다.
protected void finalize(){
   //  
   }

키워드protected는finalize () 방법이 이 클래스 이외의 코드에 호출되지 않도록 하는 한정자입니다.
물론 자바의 메모리 회수는 JVM에서 자동으로 할 수 있다.만약 네가 수동으로 사용한다면 위의 방법을 사용할 수 있다.
public class FinalizationDemo {  
    public static void main(String[] args) {  
        Cake c1 = new Cake(1);  
        Cake c2 = new Cake(2);  
        Cake c3 = new Cake(3);  
          
        c2 = c3 = null;  
        System.gc(); // Java 
    }  }  
  class Cake extends Object {  
    private int id;  
    public Cake(int id) {  
        this.id = id;  
        System.out.println("Cake Object " + id + "is created");  
    }  
      
    protected void finalize() throws java.lang.Throwable {  
        super.finalize();  
        System.out.println("Cake Object " + id + "is disposed");  
    }  }

위 코드를 실행하면 출력 결과는 다음과 같습니다.
Cake Object 1is created  
Cake Object 2is created  
Cake Object 3is created  
Cake Object 3is disposed  
Cake Object 2is disposed

좋은 웹페이지 즐겨찾기