ये दोनों एक ही चीजें हैं?एक सरणी शून्य के तत्व बनाने
for(int i=0; i<array.length; i++){
array[i] = null;
}
और
array = null;
ये दोनों एक ही चीजें हैं?एक सरणी शून्य के तत्व बनाने
for(int i=0; i<array.length; i++){
array[i] = null;
}
और
array = null;
नहीं है, पहले एक सरणी अशक्त के प्रत्येक तत्व बनाता है, सरणी की लंबाई अभी भी array.length हो जाएगा, दूसरी सरणी चर शून्य पर सेट हो जाएगा।
बिलकुल नहीं।
पहले मामले में आप अपने सरणी में सभी संदर्भों को शून्य में सेट कर रहे हैं।
दूसरे मामले में आप सरणी के लिए बहुत ही संदर्भ को शून्य पर सेट कर रहे हैं।
एक छोटा सा टुकड़ा अंतर दिखाने के लिए:
// declare a array variable that can hold a reference.
String [] array;
// make it null, to indicate it does not refer anything.
array = null;
// at this point there is just a array var initialized to null but no actual array.
// now allocate an array.
array = new String[3];
// now make the individual array elements null..although they already are null.
for(int i=0;i<array.length;i++)
{
array[i] = null;
}
// at this point we have a array variable, holding reference to an array,
// whose individual elements are null.
नहीं, यह एक ही नहीं है।
तथ्य की बात के रूप में, कोड के पहले स्निपेट सही ढंग से चलाने के लिए, सरणी चर घोषित कर दिया और इस तरह प्रारंभ (उदाहरण के लिए)
Object[] array = new Object[5];
यह प्रत्येक के साथ 5 तत्वों की एक सरणी बनाता है किया जाना चाहिए तत्व null
मान वाला है।
एक बार जब आप यह कर लेंगे, तो पहले उदाहरण में आप जो कर रहे हैं वह array[i]
तत्वों में से प्रत्येक को शून्य मान निर्दिष्ट कर रहा है। array
null
नहीं होगा। तो आपके पास ऐसा कुछ होना चाहिए।
सरणी ->
array = null
करने के बाद आप कह रहे हैं कि सरणी अब संदर्भ तत्वों की सरणी है। अब आप
सरणी होना चाहिए -> अशक्त
न तो उनमें से काम करेंगे! यदि आपके पास पूर्णांक की सरणी है और आप तत्व को शून्य बनाने का प्रयास करते हैं तो आप arr [i] = null नहीं कर सकते; क्योंकि पूर्णांक को शून्य में परिवर्तित नहीं किया जा सकता है।
पहले कथन के बाद 'सरणी = शून्य;' आपका कथन "... केवल स्ट्रिंग का संदर्भ ..." बिल्कुल सही नहीं है। यह वास्तव में एक चर है जो संदर्भ रख सकता है लेकिन कोई संदर्भ नहीं है। –
@ केविन: धन्यवाद :) – codaddict
+1: अच्छा जवाब –