स्टेटिक विधियां केवल विधियां हैं, वे ढेर पर संग्रहीत नहीं हैं, वे सिर्फ "यह" पैरामीटर का उपयोग नहीं करते हैं।
स्टेटिक चर जीसी के लिए "जड़ों" के रूप में कार्य करते हैं। नतीजतन, जब तक कि आप उन्हें स्पष्ट रूप से शून्य पर सेट नहीं करते हैं, तब तक वे तब तक जीवित रहेंगे जब तक कार्यक्रम रहता है, और इसलिए सबकुछ उनसे पहुंच योग्य है।
यदि आप स्मृति मुक्त होने का इरादा रखते हैं तो यह केवल एक स्मृति रिसाव माना जाता है और यह मुक्त नहीं होता है। यदि आप उस समय के हिस्से के लिए किसी ऑब्जेक्ट का संदर्भ रखने के लिए अपने स्थैतिक चर के लिए इरादा रखते हैं, और जब आप उस ऑब्जेक्ट के साथ काम करते हैं तो आप इसे शून्य पर सेट करना भूल जाते हैं, तो आप संभवतः रिसाव के साथ समाप्त हो जाएंगे। हालांकि, यदि आप इसे स्थैतिक चर में डालते हैं और जब तक प्रोग्राम चल रहा है, तब तक वहां रहने का इरादा रखते हैं, तो यह निश्चित रूप से एक रिसाव नहीं है, यह "स्थायी सिंगलटन" की अधिक संभावना है। यदि ऑब्जेक्ट पुनः प्राप्त हुआ था, जबकि आप अभी भी मौजूद होना चाहते थे, तो यह बहुत बुरा होता।
ढेर के बारे में आपके प्रश्न के लिए: जावा में सभी ऑब्जेक्ट्स या तो ढेर या ढेर पर मौजूद हैं। ऑब्जेक्ट नए ऑपरेटर के साथ ढेर पर बनाए जाते हैं। उसके बाद एक संदर्भ संलग्न किया जाता है। यदि संदर्भ शून्य हो जाता है या दायरे से बाहर हो जाता है (उदाहरण के लिए, ब्लॉक का अंत), जीसी को पता चलता है कि उस वस्तु तक पहुंचने का कोई तरीका नहीं है और इसे पुनः प्राप्त किया गया है। यदि आपका संदर्भ स्थैतिक चर में है, तो यह कभी भी गुंजाइश से बाहर नहीं होता है लेकिन आप इसे अभी भी शून्य या किसी अन्य ऑब्जेक्ट पर सेट कर सकते हैं।
आईआईआरसी स्थिर क्षेत्रों को जीसीड किया जाएगा, जैसे ही उन्हें घोषित किया गया वर्ग जीसीड है।यदि वर्ग का वां elast उदाहरण चला गया है तो कक्षा घोषणा की जाएगी और इसके साथ स्थिर क्षेत्र होंगे। – ordnungswidrig
मुझे यकीन नहीं है कि @ o11rig पूरी तरह से सटीक है, लेकिन मेरा मानना है कि जीसी को कक्षाओं के लिए सांख्यिकी एकत्र करने की अनुमति है जिनके पास कुछ परिस्थितियों में कोई सदस्य नहीं है। मैंने इसे दो स्रोतों से सुना है, लेकिन कभी भी सटीक स्पष्टीकरण नहीं सुना है। –
थोड़ा क्विबल: सभी जावा * ऑब्जेक्ट्स * ढेर में रहते हैं। ऑब्जेक्ट * रेफरेंस * और प्राइमेटिव्स को स्टैक पर संग्रहीत किया जा सकता है यदि वे वर्तमान में निष्पादन विधि के स्थानीय हैं, और अन्यथा ढेर पर संग्रहीत हैं। (जेआईटी के साथ किसी भी आधुनिक जेवीएम में छोड़कर, जहां जेआईटी का ऑप्टिमाइज़र ऑब्जेक्ट्स को जहां भी पसंद करता है, तब तक रख सकता है, जब तक कि यह अभी भी * कार्य करता है * ऑब्जेक्ट्स जैसे ही ढेर पर होता है।) और यह तर्क दिया जा सकता है कि स्थैतिक तरीकों - या , कम से कम, जावा बाइटकोड जो उन्हें लागू करता है - कक्षा ऑब्जेक्ट के हिस्से के रूप में ढेर पर भी रहता है जो कक्षा को दर्शाता है जहां उन्हें परिभाषित किया गया था। –