הבדל מפתח - השלכה () לעומת סיום ()
ההבדל העיקרי בין dispose () ל- finalize () הוא ש- dispose () צריך להיות מופעל במפורש על ידי המתכנת בעוד שה- finalize () מופעל על ידי אספן האשפה לפני השמדת האובייקט.
The dispose () היא שיטה לסגירה או שחרור של משאבים לא מנוהלים כגון קבצים, זרמים המוחזקים על ידי אובייקט. הגמר היא שיטה לביצוע פעולות ניקוי במשאבים לא מנוהלים המוחזקים על ידי האובייקט הנוכחי לפני השמדת האובייקט.
מה זה dispose()?
אחד היתרונות החשובים ביותר של. NET framework היא שהיא מספקת איסוף אשפה אוטומטי. זה משחרר אוטומטית את הזיכרון של האובייקטים שאינם בשימוש. בשפות תכנות כגון C ו-C++, על המתכנת להתמודד עם ניהול זיכרון בכוחות עצמו. אבל בשפות כמו C שבנוי על מסגרת NET מספקת את אוסף האשפה. זה עוזר לנהל את הזיכרון. לא ניתן להשתמש בו כדי לשחרר את משאבי הזיכרון הבלתי מנוהלים. ניתן להשתמש בשיטת dispose () כדי להשיג משימה זו.
ניתן להשתמש בשיטת dispose () כדי לשחרר משאבים כגון חיבורי מסד נתונים, מטפלי קבצים וכו'. שיטה זו אינה נקראת אוטומטית. לכן, המתכנת צריך ליישם שיטה זו. ברגע שהשיטה הזו מופעלת, הזיכרון עבור המשאב הבלתי מנוהל המסוים משתחרר. שיטה זו מוצהרת בממשק IDisposeable.
מה זה לסיים ()?
שיטת הסופי נקראת רק על ידי אספן האשפה כאשר לא נעשה שימוש נוסף בהפניה לאובייקט. שיטה זו נקראת ממש לפני השמדת האובייקט. שיטה זו מיושמת בעזרת המשמיד. שיטת finalize מוגדרת במחלקה java.lang.object. שיטה זו מוכרזת כמוגנת. זה לא מוכרז כציבורי כדי להימנע מגישה של הכיתות האחרות. בסך הכל, שיטת הגמר יכולה למזער את ביצועי התוכנית מכיוון שהיא לא משחררת את הזיכרון באופן מיידי.
מהו הדמיון בין dispose () לבין finalize()?
ניתן להשתמש בשני השלכות () וגם לסיים() כדי לפנות את הזיכרון שהוקצה למשאב לא מנוהל
מה ההבדל בין dispose () לבין finalize()?
dispose () לעומת finalize () |
|
The dispose () היא שיטה לסגירה או שחרור של משאבים לא מנוהלים כגון קבצים, זרמים המוחזקים על ידי אובייקט. | The finalize היא שיטה לביצוע פעולות ניקוי במשאבים לא מנוהלים המוחזקים על ידי האובייקט הנוכחי לפני השמדת האובייקט. |
מטרה | |
שיטת השלכה משמשת לשחרור המשאבים הבלתי מנוהלים כאשר היא מופעלת. | שיטת הגמר משמשת לשחרור המשאבים הבלתי מנוהלים לפני השמדת האובייקט. |
ממשק מוגדר או מחלקה | |
הסילוק () מוגדר בממשק IDdisposable interface. | הסיום () מוגדר ב-java.lang.object class. |
שיטת הפנייה | |
שיטת השלכה מופעלת על ידי המתכנת. | שיטת הסיום מופעלת על ידי אספן האשפה. |
מפרט גישה | |
שיטת ההשלכה היא ציבורית. | שיטת הסיום מוגנת. |
Speed | |
שיטת השלכה מופעלת באופן מיידי. | שיטת הסיום מופעלת באיטיות. |
ביצועים | |
הסילוק לא ימזער את ביצועי התוכנית. | שיטת הסיום עשויה למזער את ביצועי התוכנית. |
סיכום – השלכה () לעומת סיים ()
מאמר זה דן בהבדל בין שיטות השלכה וסופיות ב-C. ההבדל בין dispose () ל- finalize () הוא ש- dispose () צריך להיות מופעל במפורש על ידי המתכנת בעוד שה- finalize () מופעל על ידי אספן האשפה לפני השמדת האובייקט.