मैं सी ++ के लिए अधिक उपयोग किया जाता हूं। एक वर्ग के सभी उदाहरणों (यह है कि उपयोगकर्ता द्वारा बढ़ाया जा सकता है एक पुस्तकालय वर्ग है) की एक सूची प्राप्त करने के लिए, मैं आमतौर पर इस तरह की वस्तुओं के सभी संदर्भ के साथ एक स्थिर कंटेनर:जावा: कक्षा के सभी उदाहरणों के संदर्भों को कैसे संग्रहीत किया जाए?
#include <list>
class CPPClass;
class CPPClass {
public:
CPPClass() {
objList.push_back(this);
}
~CPPClass() {
objList.remove(this);
}
private:
static std::list<CPPClass *> objList;
};
std::list<CPPClass *> CPPClass::objList;
मुझे क्या करना चाहिए कैसे जावा में वही? मैं कुछ चिंताएं हैं:
- किसी ने मुझे बताया कि एक से अधिक classloaders हो सकता है, और कहा कि समस्याओं
- वहाँ जावा में कोई नाशक है के कारण हो सकता है, तो कैसे संदर्भ सूची से हटा दिया जाएगा?
- यदि संदर्भ हटाए नहीं जाते हैं, तो इन वस्तुओं को कब कचरा इकट्ठा किया जाता है?
स्टोर [कमजोर संदर्भ] (http://docs.oracle.com/javase/7/docs/api/java/lang/ref/WeakReference.html) ऑब्जेक्ट में उन्हें कचरा इकट्ठा करने की अनुमति देने के लिए। – GriffeyDog