मैंने कुछ जावा कचरा संग्रह मार्गदर्शिकाओं के माध्यम से ऑनलाइन पढ़ा है, लेकिन मैं अभी भी थोड़ा अस्पष्ट हूं और यह सुनिश्चित करना चाहता हूं कि मेरे कोड में मेमोरी लीक न हो।क्या जावा जीसी ऑब्जेक्ट्स को नष्ट करता है यदि इंस्टेंस चर के संदर्भ में अभी भी संदर्भ है?
क्या जावा जीसी उन वस्तुओं को एकत्र करता है जो इसके संदर्भ को खो देते हैं, लेकिन इसके चर के संदर्भ में अभी भी संदर्भ है?
तो मान लीजिए कि मैं जाने SomeObject:
public class SomeObject {
public ObjectVar var;
public SomeObject() {
var = new ObjectVar();
}
}
और मेरे कोड:
SomeObject obj1 = new SomeObject();
SomeObject obj2 = new SomeObject();
obj2.var = obj1.var;
obj1 = null;
तो obj1 के वर संदर्भ है, लेकिन obj1 अब कोई संदर्भ है। तो, क्या जीसी obj1 को नष्ट कर देगा, लेकिन var जीवित रखना होगा? (मुझे ऐसा लगता है, बस सुनिश्चित करना चाहता था)। धन्यवाद!
जीसी के लिए मूल नियम यह है कि यदि कोई ऑब्जेक्ट जीसीइंग आपके प्रोग्राम को प्रभावित करेगा, तो ऐसा नहीं होता है। (जब तक आप विशेष उपकरण का उपयोग नहीं कर रहे हैं जो जीसी के बारे में परवाह करते हैं, लेकिन यदि आप इसका उपयोग कर रहे हैं, तो आप जान लेंगे।) –
आप ["मिडलाइफ़ क्राइसिस"] (http: //blogs.msdn) के बारे में पढ़ना चाहेंगे। कॉम/बी/ricom/संग्रह/2003/12/04/41281.aspx)। – Mehrdad