جمع القمامة

في القسم 9.9 تحدثنا عما يحدث عندما يشير أكثر من متغير إلى نفس الكائن. ماذا يحدث عندما لا يشير أي متغير إلى الكائن؟ مثلاً:
كود:
Point blank = new Point (3, 4);
blank = null;
ينشئ السطر الأول كائناً جديداً من الصنف Point ويجعل المتغير blank يشير إليه. يعدل السطر الثاني المتغير blank فبدلاً من الإشارة إلى الكائن، لا يشير إلى شيء (الكائن المعدوم).
http://file.topmaxtech.net/images/ph...3961822722.jpg
إذا لم يشر أحد إلى الكائن، فلن يستطيع أحد قراءة أو كتابة أي من قيمه، أو استدعاء عملية عليه. نتيجة لذلك، سيبقى الكائن محاصراً حتى الخروج من البرنامج. يمكننا ترك الكائن في الذاكرة لكنه سيهدر المساحة وحسب، لذلك يبحث نظام Java عن الكائنات المعزولة بشكل دوري أثناء عمل البرنامج، ويتخلص منهم لاستعادة المساحة التخزينية، في عملية تدعى جمع القمامة (garbage collection). بعد ذلك، تصبح المساحة التخزينية التي شغلها الكائن متوفرة للاستعمال كجزء من كائن جديد.
لا توجد حاجة لعمل أي شيء حتى تجعل عملية جمع القمامة تبدأ، وبشكل عام لن تشعر بتلك العملية أبداً.