यदि आप एक नोटिफ़ायर के साथ कमजोर संदर्भ को अंतिम रूप से किसी ऑब्जेक्ट के समान माना जाता है, तो यह कहने के लिए अर्थात् अर्थशास्त्र होना संभव होगा, जब यह कहने के लिए कि जब ऑब्जेक्ट को अब रुचि नहीं माना जाता था कोई भी, इसे अंतिम रूप और अधिसूचना के लिए कतारबद्ध किया जाएगा; कतार प्रविष्टि को लाइव संदर्भ माना जाएगा, इसलिए ऑब्जेक्ट वास्तव में तब तक एकत्र नहीं किया जाएगा जब तक यह कार्य नहीं किया जाता था।
चूंकि यह संभव नहीं है, इसलिए संभवतः सबसे व्यवहार्य दृष्टिकोण संभवतः "मुझे इस वस्तु में रूचि है" संदर्भों को हल्के रैपर ऑब्जेक्ट को इंगित करना चाहिए जो वास्तविक वस्तु को इंगित करेगा, और आपके पास "कमजोर" संदर्भ एक अलग रैपर को इंगित करते हैं जो वास्तविक वस्तु को इंगित करता है। पहले रैपर को दूसरे के संदर्भ में होना चाहिए, लेकिन इसके विपरीत नहीं। पहले रैपर में एक फाइनलज़र होना चाहिए जो दायरे से बाहर होने पर उपयुक्त कोड ट्रिगर करेगा।
दुर्भाग्य से, मैं इस तरह की रणनीति के किसी भी पूरा कार्यान्वयन नहीं देखा है। विचार करने के लिए कुछ महत्वपूर्ण चेतावनी हैं। उनमें से: (1) फाइनलरों को ताले पर कभी इंतजार नहीं करना चाहिए, न ही कुछ भी जो अपवाद फेंक सकता है; (2) कोड है जो अन्य वस्तुओं की संभावना है कि वे पहले से ही अंतिम रूप दे दिया गया हो सकता है के लिए तैयार रहना चाहिए क्षेत्र से बाहर चले गए हैं हो सकता है पहुंचता है, तो अंतिम रूप दिया जा रहा है की प्रक्रिया में हो सकता है, अंतिम रूप दिए जाने का इंतजार कर रहा हो, या अभी भी कहीं और लाइव संदर्भ है, (3) यदि कोई फाइनेंजर एक अंतिम वस्तु के रूट संदर्भ को संग्रहीत करता है जो कचरा संग्रह के लिए योग्य पाया गया है, तो लाइव ऑब्जेक्ट मौजूद होने के बावजूद ऐसी वस्तु को अंतिम रूप दिया जा सकता है।
मुझे लगता है कि धारावाहिक डेटा को अद्यतन करने के लिए कोई भी प्राकृतिक स्थान है। जानकारी के लिए धन्यवाद! –