उदाहरण के मैदान, सरणी तत्वों
अगर वहाँ एक वस्तु के लिए एक संदर्भ है, यह कचरा एकत्र नहीं किया जा सकता है। विशेष रूप से यदि वह वस्तु (और इसके पीछे का पूरा ग्राफ) बड़ा है, तो केवल एक संदर्भ है जो कचरा संग्रह रोक रहा है, और उस संदर्भ को वास्तव में अब और आवश्यकता नहीं है, यह एक दुर्भाग्यपूर्ण स्थिति है।
पैथोलॉजिकल मामले वह ऑब्जेक्ट है जो पूरे एक्सएमएल डोम पेड़ को एक अनैतिक उदाहरण बनाए रखता है जिसे इसे कॉन्फ़िगर करने के लिए उपयोग किया गया था, एमबीन जो अनियंत्रित नहीं था, या एक बेरोजगार वेब एप्लिकेशन से किसी ऑब्जेक्ट का एकल संदर्भ जो पूरी तरह से रोकता है Unloaded होने से classloader।
तो तुम को यकीन है कि उद्देश्य यह है कि संदर्भ में ही कचरा वैसे भी एकत्र किया जाएगा (या फिर भी) रखती है, तो आप सब कुछ है कि अब आपको नहीं चाहिए बाहर शून्य चाहिए जब तक।
scoped चर:
आप, इसके दायरे के अंत से पहले शून्य पर एक स्थानीय चर स्थापित करने पर विचार कर रहे हैं इतना है कि यह कचरा कलेक्टर द्वारा पुन: दावा किया जा सकता है और अब से "के रूप में व्यर्थ में चिह्नित करने के ", आपको इसे अधिक सीमित दायरे में डालने पर विचार करना चाहिए।
{
BigObject obj = ...
doSomethingWith(obj);
obj = null; // <-- explicitly set to null
doSomethingElse();
}
हो जाता है
{
{
BigObject obj = ...
doSomethingWith(obj);
} // <-- obj goes out of scope
doSomethingElse();
}
लांग, फ्लैट स्कोप, आम तौर पर कोड की स्पष्टता के लिए बुरा कर रहे हैं भी। केवल उस उद्देश्य के लिए चीजों को तोड़ने के लिए निजी तरीकों का परिचय देना भी अनसुना नहीं है।
पढ़ सकते हैं यह प्रोफाइल। आधुनिक रनटाइम पर आपको प्रदर्शन या मेमोरी पदचिह्न में कोई सार्थक वृद्धि नहीं दिखाई देनी चाहिए। –
@ जेसन, प्रोफाइल? यह मानता है कि मैं इसका जवाब देने के लिए पर्याप्त पर्याप्त परिणाम सेट करने के लिए मामलों के एक बड़े सेट को प्रोफाइल कर दूंगा। और यह कि मैं मामलों का एक सेट नहीं चुनता कि वीएम को जीसी और प्रदर्शन मुद्दों को मुखौटा करने के लिए पर्याप्त अनुकूलित किया गया है। यही कारण है कि मैं इसे यहाँ पूछ रहा हूँ। उन मामलों की भावना प्राप्त करने के लिए जहां यह एक मुद्दा है। – sal
http://stackoverflow.com/questions/449409/does-assigning-objects-to-null-in-java-impact-garbage-collection का डुप्लिकेट। –