इंस्टेंस फ़ील्ड, सरणी तत्व
यदि किसी वस्तु का संदर्भ है, तो उसे एकत्र नहीं किया जा सकता है। खासकर यदि वह वस्तु (और उसके पीछे का पूरा ग्राफ) बड़ा है, केवल एक संदर्भ है जो कचरा संग्रह को रोक रहा है, और उस संदर्भ की अब वास्तव में आवश्यकता नहीं है, यह एक दुर्भाग्यपूर्ण स्थिति है।
पैथोलॉजिकल मामले वह वस्तु है जो पूरे XML DOM ट्री को एक असंसदीय उदाहरण देता है जो इसे कॉन्फ़िगर करने के लिए इस्तेमाल किया गया था, जो MBean अपंजीकृत नहीं था, या एक अवांछित वेब एप्लिकेशन से किसी ऑब्जेक्ट का एकल संदर्भ जो पूरे क्लासलोडर को अनलोड होने से रोकता है ।
इसलिए जब तक आप सुनिश्चित नहीं होते कि वस्तु जो स्वयं संदर्भ रखती है, वैसे भी कचरा एकत्र किया जाएगा (या फिर तब भी), आपको हर उस चीज को समाप्त कर देना चाहिए जिसकी आपको अब आवश्यकता नहीं है।
बंद चर:
यदि आप इसके दायरे के अंत से पहले एक स्थानीय चर को शून्य करने के लिए विचार कर रहे हैं, ताकि इसे कचरा कलेक्टर द्वारा पुनः प्राप्त किया जा सके और इसे "अब से अनुपयोगी" के रूप में चिह्नित किया जाए, तो आपको इसे इसके बजाय अधिक सीमित दायरे में रखने पर विचार करना चाहिए। ।
{
BigObject obj = ...
doSomethingWith(obj);
obj = null; // <-- explicitly set to null
doSomethingElse();
}
हो जाता है
{
{
BigObject obj = ...
doSomethingWith(obj);
} // <-- obj goes out of scope
doSomethingElse();
}
कोड की सुगमता के लिए आमतौर पर लंबे, सपाट स्कोप खराब होते हैं। केवल उस उद्देश्य के लिए चीजों को तोड़ने के लिए निजी तरीकों का परिचय देना अनसुना नहीं है, भी।