"สวัสดีอีกครั้ง วันนี้เราจะเรียนรู้สั้นๆ เกี่ยวกับ เมธอด Finalize () Java Virtual Machine เรียกเมธอดFinalize () ก่อนที่จะทำลายออบเจกต์ เมธอดนี้ใช้เพื่อจัดสรรทรัพยากรระบบหรือดำเนินการล้างข้อมูลอื่นๆ อันที่จริง วิธีนี้ วิธีการเป็นสิ่งที่ตรงกันข้ามกับตัวสร้างใน Java คุณจะจำได้ว่าตัวสร้างถูกใช้เพื่อสร้างวัตถุ"
"คลาส Object มี เมธอด Finalize () ซึ่งหมายความว่าคลาสอื่น ๆ ทุกคลาสก็ทำเช่นกัน ( เนื่องจากคลาส Java ทั้งหมดมาจากคลาส Object ) คุณสามารถใช้ เมธอด Finalize () ของคุณเอง ในคลาสของคุณได้"
"นี่คือตัวอย่าง:"
class Cat
{
String name;
Cat(String name)
{
this.name = name;
}
protected void finalize() throws Throwable
{
System.out.println(name + " has been destroyed");
}
}
“นั่นก็สมเหตุสมผลดี เอลลี่”
"แต่คุณควรทราบว่า Java Virtual Machine ตัดสินใจว่าจะเรียกเมธอดนี้หรือไม่ บ่อยกว่านั้น อ็อบเจ็กต์ที่สร้างขึ้นภายในเมธอดและประกาศขยะเมื่อเมธอดเสร็จสมบูรณ์จะถูกทำลายทันทีโดยไม่มีการเรียกเพื่อจบการทำงาน () เมธอดนี้มีมากกว่า เช่นการสำรองข้อมูลมากกว่าโซลูชันที่เชื่อถือได้ตัวเลือกที่ดีที่สุดคือปล่อยทรัพยากรระบบทั้งหมด (โดยตั้งค่าการอ้างอิงไปยังวัตถุอื่นๆ เป็น null) ในขณะที่วัตถุนั้นยังมีชีวิตอยู่ ฉันจะบอกคุณเพิ่มเติมเกี่ยวกับข้อดีและความแตกต่างของวิธีนี้ในภายหลัง ณ จุดนี้ คุณต้องเข้าใจสองสิ่งเท่านั้น: มีวิธีการดังกล่าว และ ( แปลกใจ! ) มันไม่ได้ถูกเรียกเสมอ"
GO TO FULL VERSION