उत्तर उस भाषा पर निर्भर करता है जिसका आप उपयोग कर रहे हैं।
C / C ++
C और C ++ में, कीवर्ड NULL था, और NULL वास्तव में क्या था 0. यह निर्णय लिया गया था कि "0x0000" कभी भी किसी ऑब्जेक्ट के लिए वैध पॉइंटर नहीं होने वाला था, और इसलिए यह मान है जिसे यह इंगित करने के लिए असाइन किया गया है कि यह वैध सूचक नहीं है। हालाँकि, यह पूरी तरह से मनमाना है। यदि आप इसे एक पॉइंटर की तरह एक्सेस करने का प्रयास करते हैं, तो यह बिल्कुल एक पॉइंटर की तरह एक ऑब्जेक्ट के साथ व्यवहार करेगा, जो अब मेमोरी में मौजूद नहीं है, जिससे एक अमान्य पॉइंटर अपवाद को फेंक दिया जाता है। सूचक स्वयं मेमोरी पर कब्जा कर लेता है, लेकिन पूर्णांक ऑब्जेक्ट से अधिक नहीं होगा। इसलिए, यदि आपके पास 1000 अशक्त बिंदु हैं, तो यह 1000 पूर्णांक के बराबर है। यदि उन बिंदुओं में से कुछ वैध वस्तुओं की ओर इशारा करते हैं, तो मेमोरी का उपयोग 1000 पूर्णांकों के बराबर होगा और साथ ही उन वैध ऑब्जेक्ट में निहित मेमोरी। याद रखें कि C या C ++ में,मैमोरी जारी नहीं की गई है, इसलिए आपको डीललोक (C) या डिलीट (C ++) का उपयोग करके स्पष्ट रूप से उस ऑब्जेक्ट को हटाना होगा।
जावा
जावा नल में C और C ++ के विपरीत, केवल एक कीवर्ड है। किसी ऑब्जेक्ट को पॉइंटर की तरह नल का प्रबंधन करने के बजाय, इसे आंतरिक रूप से प्रबंधित किया जाता है और शाब्दिक की तरह व्यवहार किया जाता है। इसने पूर्णांक प्रकारों के रूप में पॉइंटर्स में टाई करने की आवश्यकता को समाप्त कर दिया और जावा को पॉइंटर्स को पूरी तरह से दूर करने की अनुमति देता है। हालांकि, भले ही जावा इसे बेहतर तरीके से छुपाता है, फिर भी वे पॉइंटर्स हैं, जिसका अर्थ है कि 1000 null पॉइंटर्स अभी भी 1000 पूर्णांक के बराबर उपभोग करते हैं। जाहिर है जब वे वस्तुओं की ओर इशारा करते हैं, तो बहुत सी और सी ++ की तरह, मेमोरी उन वस्तुओं द्वारा खपत होती है जब तक कि कोई अधिक पॉइंटर्स उन्हें संदर्भित नहीं करते हैं, हालांकि सी और सी ++ के विपरीत, कचरा कलेक्टर अपने अगले पास पर उठाता है और मेमोरी को मुक्त करता है। यह सुनिश्चित करने के बिना कि आपको किन वस्तुओं को मुक्त किया गया है और किन वस्तुओं में नहीं है, इसका ट्रैक रखना है, ज्यादातर मामलों में (जब तक कि आपके पास उदाहरण के लिए वस्तुओं को कमजोर करने के कारण न हों)।