Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วัตถุประสงค์ของการ Override เมธอด finalize() ใน Java


finalize() เป็น pre-defined method ในคลาส Object เป็น protected วัตถุประสงค์ของการ override finalize() คือเพื่อใส่ cleanup code หรือ ปล่อยทรัพยากรระบบ (dispose system resources) ก่อนที่ออบเจ็กต์จะถูก garbage collected หาก override finalize() จะต้องรับผิดชอบเรียก super.finalize() เอง finalize() ถูกเรียกได้ ครั้งเดียว โดย JVM หรือออบเจ็กต์ใดๆ

ไวยากรณ์

protected void finalize() throws Throwable

ตัวอย่าง

public class FinalizeMethodTest {
    protected void finalize() throws Throwable {
        try {
            System.out.println("Calling finalize() method of FinalizeMethodTest class");
        } catch(Throwable th) {
            throw th;
        } finally {
            System.out.println("Calling finalize() method of Object class");
             super.finalize();
        }
    }

    public static void main(String[] args) throws Throwable {
        FinalizeMethodTest test = new FinalizeMethodTest();
        String str = "finalize() method in Java";
        str = null;
        System.out.println(str);
        test.finalize();
    }
}

ผลลัพธ์

null Calling finalize() method of FinalizeMethodTest class Calling finalize() method of Object class