DeadObjectException
और NullPointerException
के बीच क्या अंतर है? मुझे लगता है कि मैं समझ सकता हूं लेकिन मैं बस यह सुनिश्चित करना चाहता था।DeadObjectException के बीच अंतर और एक NullPointerException
मेरी समझ
एक DeadObjectException
होता है जब आप (और स्मृति अभी भी मौजूद है) कुछ के लिए एक संदर्भ बनाने की कोशिश कर रहे हैं, लेकिन क्या कोई इसका पता पकड़े संकेत नहीं हैं, इसलिए वहाँ कोई रास्ता नहीं है उस स्मृति तक पहुंचने के लिए। यह NullPointerException
से भिन्न है इस तथ्य में कि स्मृति अभी भी मान्य है, वहां पहुंचने का कोई तरीका नहीं है।
क्या मेरे पास सही विचार है? साइट पर अन्य प्रश्न के आधार पर:
मुझे लगता है कि मेरी दावे सही है, मैं सिर्फ यह सुनिश्चित करना चाहता था।
एक दूरस्थ वस्तु एक वस्तु है जो किसी अन्य प्रक्रिया में किसी ऑब्जेक्ट से जुड़ी होती है। जब आप उस पर विधियों को कॉल करते हैं, तो यह उस अन्य ऑब्जेक्ट के लिए प्रॉक्सी के रूप में कार्य करता है। जब रिमोट ऑब्जेक्ट डिस्कनेक्ट हो जाता है, ऑब्जेक्ट अब तक पहुंच योग्य नहीं होता है। आपके द्वारा धारित उदाहरण अभी भी मौजूद है (इसलिए, एनपीई नहीं), लेकिन यह उस चीज़ को संदर्भित करता है जो अब नहीं है। सिद्धांत रूप में एनपीई जैसा दिखता है, लेकिन यह बहुत अधिक स्तर है (और एंड्रॉइड ओएस में उलझा हुआ है)। एनपीई तब होता है जब आप 'MyObject foo = null करते हैं; foo.something(); 'foo एक objec नहीं है यह एक शून्य संदर्भ है। – njzk2
तो (इसे आसानी से रखने के लिए) मैं एक मध्यस्थ वस्तु को पकड़ता हूं जो वास्तविक वस्तु पर रखता है। जब मध्यस्थ अपना संदर्भ खो देता है, तो जब मुझे डीओई मिलता है, क्योंकि वह नहीं जानता कि आदेशों को निष्पादित करना क्या है? – Jeeter
@ njzk2 आपकी टिप्पणी की मेरी व्याख्या सही है? – Jeeter