: 클래스, 메소드, 변수, 인자를 선언할 때 함께 사용되며 상태를 유지하려는 특징을 가짐.
: try-catch와 함께 사용되며 try-catch가 종료될 때 finally block이 항상 수행 됨.
finally block은 try block이 종료될 때 항상 실행 (catch가 없어도 finally block은 항상 실행)
: Object 클래스에 선언된 protected 메소드이며 Object를 상속 받는 모든 객체는 finalize() 메소드를 가짐. Garbage collector가 어떤 객체를 참조하는 객체가 없다고 생각되면, 이 객체를 소멸시킴. 객체를 소멸시킬 때 finalize() 메소드 호출.
클래스를 정의할 때 finalize()를 오버라이드 할 수 있는데, 메소드 호출 시점이 Garbage collector에 의존적이기 때문에 생각했던 타이밍과 다를 수 있어 finalize()를 재정의하지 않는 것이 좋음.