किसी ऑब्जेक्ट का उपयोग करने के बाद, इसे गारबेज कलेक्टर क्लास का उपयोग करके मेमोरी से हटा दिया जाता है। वस्तुओं को इस तथ्य के आधार पर नष्ट कर दिया जाता है कि उस वस्तु का कोई संदर्भ मौजूद नहीं है। कचरा संग्रहकर्ता वर्ग उस वस्तु पर 'अंतिम रूप' फ़ंक्शन को कॉल करता है जिसे नष्ट करने की आवश्यकता होती है।
आइलैंड ऑफ आइसोलेशन क्या है?
जब दो वस्तुएं 'ए', और 'बी' एक-दूसरे को संदर्भित करती हैं, और वे किसी अन्य वस्तु द्वारा संदर्भित नहीं होती हैं, तो इसे अलगाव के द्वीप के रूप में जाना जाता है।
यह वस्तुओं का एक समूह है जो एक दूसरे को संदर्भित करता है लेकिन वे संदर्भित नहीं हैं बल्कि अन्य अनुप्रयोगों की अन्य वस्तुएं हैं।
नोट − एक अकेला गैर-संदर्भित वस्तु भी अलगाव का एक द्वीप है।
आइए एक उदाहरण देखें -
उदाहरण
public class Demo{ Demo i; public static void main(String[] args){ Demo my_ob_1 = new Demo(); System.out.println("Demo object one has been created"); Demo my_ob_2 = new Demo(); System.out.println("Demo object two has been created"); my_ob_1.i = my_ob_2; my_ob_2.i = my_ob_1; my_ob_1 = null; my_ob_2 = null; System.gc(); } @Override protected void finalize() throws Throwable{ System.out.println("The finalize method has been called on the object"); } }
आउटपुट
Demo object one has been created Demo object two has been created The finalize method has been called on the object The finalize method has been called on the object
डेमो नामक एक वर्ग में मुख्य कार्य होता है। यहां, डेमो क्लास प्रकार का एक वेरिएबल बनाया गया है। डेमो क्लास का एक उदाहरण बनाया जाता है और दूसरी वस्तु को पहली वस्तु के डेमो ऑब्जेक्ट को सौंपा जाता है। ऐसा ही दूसरे डोबजेक्ट के साथ भी विपरीत तरीके से किया जाता है। अब, इन दोनों वस्तुओं को शून्य पर असाइन किया गया है और 'System.gc' फ़ंक्शन को कहा जाता है। अब, 'अंतिम रूप' फ़ंक्शन को ओवरराइड कर दिया गया है।