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.