في Java، يتم الاهتمام بتدمير الكائنات بواسطة جامع القمامة الوحدة النمطية والكائنات التي لا تحتوي على أي مراجع لها مؤهلة لجمع البيانات المهملة. جامع البيانات المهملة قادر على التعرف على هذا النوع من الكائنات. الآن دعونا نناقش ما تمثله جزيرة العزلة بالضبط على النحو التالي:
- يشير الكائن 1 إلى الكائن 2 ويشير الكائن 2 إلى الكائن 1. ولا تتم الإشارة إلى الكائن 1 أو الكائن 2 بواسطة أي كائن آخر. هذه جزيرة من العزلة.
- جزيرة العزلة هي في الأساس مجموعة من الكائنات التي تشير إلى بعضها البعض ولكن لا يتم الرجوع إليها بواسطة أي كائن نشط في التطبيق. بالمعنى الدقيق للكلمة، حتى كائن واحد غير مرجعي هو جزيرة من العزلة أيضًا.
مثال:
Java
// Java Program to Illustrate Island of Isolation // Main class public class GFG { GFG i; // Method 1 // Main driver method public static void main(String[] args) { // Creating object of class inside main() method GFG t1 = new GFG(); GFG t2 = new GFG(); // Object of t1 gets a copy of t2 t1.i = t2; // Object of t2 gets a copy of t1 t2.i = t1; // Till now no object eligible // for garbage collection t1 = null; // Now two objects are eligible for // garbage collection t2 = null; // Calling garbage collector System.gc(); } // Method 2 // overriding finalize() Method @Override protected void finalize() throws Throwable { // Print statement System.out.println('Finalize method called'); } }
الإخراج:
شرح الإخراج:
- قبل تدمير كائن ما، يستدعي Garbage Collector طريقة الإنهاء مرة واحدة على الأكثر على هذا الكائن. هذا لأنه تم استدعاء طريقة Finalize () مرتين في المثال أعلاه لأن كائنين مؤهلين لجمع البيانات المهملة. وذلك لأنه ليس لدينا أي مراجع خارجية لكائنات t1 وt2 بعد تنفيذ t2=null.
- كل ما لدينا هو فقط مراجع داخلية (وهي في المثال المتغير i من فئة الاختبار) لبعضها البعض. لا توجد طريقة يمكننا من خلالها استدعاء متغير المثيل لكلا الكائنين. لذلك لا يمكن استدعاء أي من الكائنات مرة أخرى حتى ' t2.i = t1 '

- كلا الكائنين لهما مراجع خارجية t1 وt2.
الآن أصبح كلا الكائنين مؤهلين لجمع البيانات المهملة كـ لا توجد طريقة يمكننا الاتصال بهم . هذا هو المعروف شعبيا باسم جزيرة العزلة.