ความแตกต่างระหว่างการกำจัด () และขั้นสุดท้าย ()

สารบัญ:

ความแตกต่างระหว่างการกำจัด () และขั้นสุดท้าย ()
ความแตกต่างระหว่างการกำจัด () และขั้นสุดท้าย ()

วีดีโอ: ความแตกต่างระหว่างการกำจัด () และขั้นสุดท้าย ()

วีดีโอ: ความแตกต่างระหว่างการกำจัด () และขั้นสุดท้าย ()
วีดีโอ: ความแตกต่างของ 3 สิ่ง เกี่ยวกับการจัดการ 2024, พฤศจิกายน
Anonim

Key Difference – กำจัด () กับ Finalize ()

ความแตกต่างที่สำคัญระหว่างการกำจัด () และการสิ้นสุด () คือการกำจัด () จะต้องถูกเรียกใช้อย่างชัดเจนโดยโปรแกรมเมอร์ในขณะที่ตัวรวบรวมขยะเรียกการสิ้นสุด () ก่อนทำลายวัตถุ

การกำจัด () เป็นวิธีการปิดหรือปล่อยทรัพยากรที่ไม่มีการจัดการ เช่น ไฟล์ สตรีมที่ถือโดยวัตถุ ขั้นสุดท้ายเป็นวิธีการดำเนินการล้างข้อมูลบนทรัพยากรที่ไม่มีการจัดการที่ถือโดยวัตถุปัจจุบันก่อนที่วัตถุจะถูกทำลาย

ทิ้งคืออะไร()?

ข้อดีอย่างหนึ่งที่สำคัญที่สุดของ. NET framework คือให้การรวบรวมขยะอัตโนมัติ มันจะปล่อยหน่วยความจำของวัตถุที่ไม่ได้ใช้โดยอัตโนมัติ ในภาษาการเขียนโปรแกรมเช่น C และ C++ โปรแกรมเมอร์ต้องจัดการหน่วยความจำด้วยตัวเอง แต่ในภาษาเช่น C ที่สร้างขึ้นบน. NET framework จะจัดเตรียมตัวรวบรวมขยะ ช่วยในการจัดการหน่วยความจำ ไม่สามารถใช้เพื่อปล่อยทรัพยากรหน่วยความจำที่ไม่มีการจัดการ วิธีกำจัด () สามารถใช้เพื่อบรรลุภารกิจนี้ได้

ความแตกต่างระหว่างการกำจัด () และการสิ้นสุด ()
ความแตกต่างระหว่างการกำจัด () และการสิ้นสุด ()

วิธีกำจัด () สามารถใช้เพื่อปล่อยทรัพยากร เช่น การเชื่อมต่อฐานข้อมูล ตัวจัดการไฟล์ ฯลฯ วิธีการนี้จะไม่ถูกเรียกโดยอัตโนมัติ ดังนั้นโปรแกรมเมอร์จึงควรใช้วิธีนี้ ทันทีที่เรียกวิธีนี้ หน่วยความจำสำหรับทรัพยากรที่ไม่มีการจัดการนั้นจะถูกปล่อยออกมา วิธีการนี้ถูกประกาศในอินเทอร์เฟซ IDisposeable

สุดท้ายคืออะไร ()?

วิธีการสิ้นสุดจะถูกเรียกโดยตัวรวบรวมขยะเท่านั้นเมื่อไม่มีการอ้างอิงไปยังวัตถุเพิ่มเติม วิธีนี้เรียกว่าก่อนทำลายวัตถุ วิธีนี้ดำเนินการโดยใช้ตัวทำลายล้าง วิธีการสรุปผลถูกกำหนดในคลาส java.lang.object วิธีนี้ได้รับการประกาศเป็นการป้องกัน ไม่ประกาศเป็นสาธารณะเพื่อหลีกเลี่ยงการเข้าถึงโดยคลาสอื่น โดยรวมแล้ว วิธีการปิดท้ายสามารถลดประสิทธิภาพของโปรแกรมได้ เนื่องจากจะทำให้หน่วยความจำไม่ว่างในทันที

ความคล้ายคลึงกันระหว่างการกำจัด () และการสิ้นสุด () คืออะไร

ทั้งการกำจัด () และการทำให้เสร็จสิ้น () สามารถใช้เพื่อเพิ่มหน่วยความจำที่จัดสรรให้กับทรัพยากรที่ไม่มีการจัดการ

ความแตกต่างระหว่างการกำจัด () และการสิ้นสุด () คืออะไร

ทิ้ง () vs จบ ()

การกำจัด () คือวิธีการปิดหรือปล่อยทรัพยากรที่ไม่มีการจัดการ เช่น ไฟล์ สตรีมที่ถือโดยวัตถุ การสิ้นสุดเป็นวิธีการดำเนินการล้างข้อมูลทรัพยากรที่ไม่มีการจัดการที่ถือโดยวัตถุปัจจุบันก่อนที่วัตถุจะถูกทำลาย
วัตถุประสงค์
วิธีการกำจัดจะใช้เพื่อเพิ่มทรัพยากรที่ไม่มีการจัดการเมื่อถูกเรียกใช้ วิธีการสิ้นสุดจะใช้เพื่อเพิ่มทรัพยากรที่ไม่มีการจัดการก่อนที่วัตถุจะถูกทำลาย
อินเทอร์เฟซหรือคลาสที่กำหนด
การกำจัด () ถูกกำหนดในอินเทอร์เฟซ IDisposable อินเทอร์เฟซ การสิ้นสุด () ถูกกำหนดในคลาส java.lang.object
วิธีการเรียก
โปรแกรมเมอร์เรียกวิธีการกำจัด วิธีสุดท้ายถูกเรียกโดยตัวรวบรวมขยะ
ตัวระบุการเข้าถึง
วิธีการทิ้งเป็นแบบสาธารณะ วิธีสุดท้ายได้รับการคุ้มครอง
ความเร็ว
วิธีการกำจัดจะถูกเรียกใช้ทันที เรียกวิธีการขั้นสุดท้ายอย่างช้าๆ
ประสิทธิภาพ
การกำจัดจะไม่ลดประสิทธิภาพของโปรแกรม วิธีการจบอาจลดประสิทธิภาพของโปรแกรม

สรุป – กำจัด () vs จบ ()

บทความนี้กล่าวถึงความแตกต่างระหว่างวิธีการทิ้งและสรุปผลใน C ความแตกต่างระหว่าง dispose () และ finalize () คือ dispose () จะต้องถูกเรียกใช้โดยโปรแกรมเมอร์อย่างชัดเจนในขณะที่ตัวรวบรวมขยะเรียก finalize () ก่อนทำลายวัตถุ