การวิจัยหลักในบทความนี้คือความพยายามที่จะแทนที่วิธีการสรุป () ใน Java และการใช้งานเฉพาะมีดังนี้
รหัสทดสอบ
แพ็คเกจ com.alio.gc;/** * ผลการดำเนินการ: * */คลาสสาธารณะ finalizeSapegc {สาธารณะคงที่ finalizeSapegc อินสแตนซ์ = null; โมฆะสาธารณะ isalive () {system.out.println ("ใช่ฉันยังมีชีวิตอยู่"); } @Override void protected finalize () โยน throwable {super.finalize (); System.out.println ("วิธีการสรุปวิธีการที่ดำเนินการ"); อินสแตนซ์ = สิ่งนี้; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่น InterruptedException {อินสแตนซ์ = ใหม่ finalizeSapegc (); อินสแตนซ์ = null; System.gc (); Thread.sleep (1,000); อินสแตนซ์. isalive (); // เมื่อวิธีสุดท้ายไม่ได้เขียนใหม่อินสแตนซ์ = nullPoInterException จะถูกรายงานอย่างแน่นอน; System.gc (); Thread.sleep (1,000); อินสแตนซ์. isalive (); -ผลการดำเนินการ:
วิธีการที่ดำเนินการเสร็จสิ้น
ใช่ฉันยังมีชีวิตอยู่
ข้อยกเว้นในเธรด "หลัก" java.lang.nullpointerexception
ที่ com.alio.gc.finalizeescapegc.main (finalizeescapegc.java:29)
ที่ sun.reflect.nativemethodaccessorimpl.invoke0 (วิธีการดั้งเดิม)
ที่ sun.reflect.nativemethodaccessorimpl.invoke (nativemethodaccessorimpl.java:62)
ที่ sun.reflect.delegatingMethodaccessorimpl.invoke (DelegatingMethodaccessorimpl.java:43)
ที่ java.lang.reflect.method.invoke (method.java:498)
ที่ com.intellij.rt.execution.application.appmain.main (appmain.java:134)
Execute Instance แรก = null; จากนั้นเรียกใช้อินสแตนซ์. isalive (); เมื่อวิธีการสุดท้ายไม่ได้เขียนใหม่จะมีการรายงาน nullpointerexception อย่างแน่นอน
อย่างไรก็ตามผลการดำเนินการจริงคือความสำเร็จในการหลบหนีและความล้มเหลว นี่เป็นเพราะวิธีการสุดท้าย () ของวัตถุใด ๆ จะถูกเรียกโดยอัตโนมัติครั้งเดียวโดยระบบ หากวัตถุเผชิญกับการรีไซเคิลครั้งต่อไปวิธีการสรุป () จะไม่ถูกดำเนินการอีกครั้ง
วิธีการบันทึกวัตถุนี้ไม่แน่นอนอย่างมาก ขอแนะนำให้คุณไม่จำเป็นต้องใช้และลืมการมีอยู่ของวิธีนี้
ข้างต้นเป็นเรื่องเกี่ยวกับรหัสที่ครอบคลุมรหัสตัวอย่างวิธีการสรุป () ใน Java ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!