मुझे आश्चर्य है कि कमजोर संदर्भ आंतरिक रूप से कैसे काम करते हैं, उदाहरण के लिए .NET या जावा में। मेरे दो सामान्य विचार हैं:कमजोर संदर्भ कैसे लागू किए जाते हैं?
- "घुसपैठ" - सबसे शीर्ष श्रेणी (ऑब्जेक्ट क्लास) के कमजोर संदर्भों की सूची जोड़ने के लिए। फिर, जब कोई ऑब्जेक्ट नष्ट हो जाता है, तो सभी कमजोर संदर्भों को फिर से चालू किया जा सकता है और शून्य पर सेट किया जा सकता है।
- "गैर-घुसपैठ" - कमजोर संदर्भों की सूचियों के लिए ऑब्जेक्ट्स पॉइंटर्स के हैशटेबल को बनाए रखने के लिए। जब किसी ऑब्जेक्ट बी को कमजोर संदर्भ ए बनाया जाता है, तो हैशटेबल संशोधित या निर्मित में एक प्रविष्टि होगी, जिसका कुंजी बी
- "गंदा" - प्रत्येक ऑब्जेक्ट के साथ एक विशेष हैश-मूल्य स्टोर करने के लिए सूचक होगा , जब ऑब्जेक्ट नष्ट हो जाता है तो शून्य हो जाएगा। कमजोर संदर्भ उस हैश-वैल्यू की प्रतिलिपि बनाएंगे और यह ऑब्जेक्ट के मूल्य के साथ तुलना करेंगे कि यह जांचने के लिए कि वस्तु जीवित है या नहीं। हालांकि, सीधे उपयोग किए जाने पर, उल्लंघन उल्लंघन त्रुटियों का कारण बनता है, इसलिए मुझे लगता है कि उस हैश-वैल्यू के साथ एक अतिरिक्त वस्तु होने की आवश्यकता होगी।
इनमें से कोई भी समाधान साफ और न ही कुशल लगता है। क्या किसी को पता है कि यह वास्तव में कैसे किया जाता है?
मिला: http://java.sun.com/j2se/1.5.0/source_license.html –
यहां सबसे नया: http://download.java.net/openjdk/jdk7/ –