מהי שיטת finalize() ב-Java וכיצד לעקוף אותה

Mhy Sytt Finalize B Java Wkyzd L Qwp Wth



Java מספקת למפתח פונקציונליות מצוינת לניהול משאבי המערכת בצורה יעילה. בתרחיש כזה, ' לְסַכֵּם() ' שיטה נכנסת לתוקף המשחררת את משאבי המערכת לפני שאוסף האשפה מבצע עבור אובייקט ספציפי. עם זאת, ה-'Java Virtual Machine (JVM)' מאפשר להפעיל את שיטת 'finalize()' פעם אחת לכל אובייקט.

בלוג זה ידון בשימוש בשיטת 'finalize()' ועקיפה.







מהי שיטת Java 'finalize()' וכיצד לעקוף אותה?

ה ' לְסַכֵּם() שיטת ה' לְהִתְנַגֵד 'מחלקה מופעלת על ידי 'אספן האשפה' רגע לפני מחיקת האובייקט המתאים לאיסוף אשפה כדי להחיל את משימת הניקוי.



תחביר



סיום חלל מוגן ( ) זורק לזרוק





בתחביר זה, ' מוּגָן ” הוא מפרט גישה שמרמז שניתן לגשת לשיטה זו בתוך המחלקה והמחלקות הנגזרות של אותה מחלקה בלבד.

דוגמה 1: יישום שיטת 'finalize()' ב-Java



דוגמה זו ממחישה את השימוש בשיטת 'finalize()':

כיתה ציבורית Finalize2 {
סיום חלל מוגן ( ) {
System.out.println ( 'זוהי שיטת Finalize!' ) ;
}
ריק סטטי ציבורי ראשי ( חוּט [ ] args ) {
אובייקט Finalize2 = חדש Finalize2 ( ) ;
אובייקט = null;
System.gc ( ) ;
System.out.println ( 'מזמין אספן אשפה!' ) ;
} }

בשורות הקוד לעיל:

  • החל את ' לְסַכֵּם() ' השיטה בתוך המחלקה 'Finalize2' הכוללת את ההצהרה האמורה.
  • ב' רָאשִׁי ', צור אובייקט מחלקה באמצעות הבנאי 'Finalize2()'.
  • כעת, הקצו לאובייקט ' ריק ' ערך. הוא כזה שכאשר יש לו ערך 'null', אין התייחסות ולכן, הוא מתאים לאיסוף אשפה.
  • לאחר מכן, החל את ' System.gc () ' שיטה להפעיל את אוסף האשפה, ובכך לקרוא לשיטת 'finalize()'.

תְפוּקָה

כאן, ניתן לוודא ששיטת 'finalize()' מופעלת כראוי.

דוגמה 2: עקיפה של שיטת Java 'finalize()'.

ה ' לְהִתְנַגֵד מחלקה תואמת למחלקת האב של כל מחלקות ה-Java. לשיטת 'finalize()' הקיימת במחלקה זו אין יישום כלשהו. עם זאת, בהגדרת הכיתה, פעילויות הניקיון נמצאות שם. לכן, דריסה של שיטה זו מביאה לביצוע פעולות הניקוי המוגדרות:

כיתה ציבורית סיום {
סיום חלל מוגן ( ) זורק לזרוק {
לְנַסוֹת {
System.out.println ( 'שיטת ה-class finalize()' ) ;
}
לתפוס ( ניתן לזרוק למעט ) {
לזרוק למעט;
}
סוף כל סוף {
System.out.println ( 'מפעיל את שיטת finalize() של המחלקה Object' ) ;
super.finalize ( ) ;
} }
ריק סטטי ציבורי ראשי ( חוּט [ ] args ) זורק לזרוק {
Finalize obj = new Finalize ( ) ;
obj.finalize ( ) ;
} }

לפי גוש הקוד לעיל:

  • ציין את ' לְסַכֵּם() ' השיטה ולהכריז על ' ניתן לזרוק 'חריג, בהתאמה.
  • בתוך ה ' לְנַסוֹת ' לחסום, ציין את ההצהרה האמורה והתמודד עם החריג ב' לתפוס ' לחסום.
  • בתוך ה ' סוף כל סוף ' בלוק, ה' סוּפֶּר ' מילת מפתח מצביעה על שיטת 'finalize()' של מחלקת האובייקט. הוא מיושם בבלוק הספציפי הזה כדי להבטיח את ביצוע שיטת 'finalize()' גם אם יש חריג.
  • ב' רָאשִׁי ', צור אובייקט מחלקה ודרוס את שיטת 'finalize()' של מחלקת האובייקט עם השיטה שצוינה/מוגדרת במחלקה 'Finalize'.

תְפוּקָה

בתוצאה זו, ניתן להבחין כי שיטת 'finalize()' נדחפת בהצלחה.

סיכום

ה ' לְסַכֵּם() שיטת ' מופעלת על ידי 'אוסף האשפה' לפני מחיקת האובייקט וניתן לעקוף אותה באמצעות ' סוּפֶּר ' מילת מפתח. בלוג זה דן בשימוש ועקיפה של שיטת 'finalize()' ב-Java.