जावा कई अन्य भाषाओं की तुलना में थोड़ा अलग काम करता है। क्या o
पहले उदाहरण में है बस वस्तु का संदर्भ है।
जब आप कहते हैं कि o = new MyObject()
, यह प्रकार MyObject और उस वस्तु के लिए संदर्भ o
की एक नई वस्तु बनाता है o
से पहले संदर्भित जबकि objects[index]
।
यही है, ऑब्जेक्ट्स [इंडेक्स] ही स्मृति में किसी अन्य वस्तु का संदर्भ है। इसलिए ऑब्जेक्ट्स [इंडेक्स] को एक नए मायऑब्जेक्ट में सेट करने के लिए, आपको ऑब्जेक्ट्स [इंडेक्स] को इंगित करने की आवश्यकता है, जिसे ऑब्जेक्ट्स [इंडेक्स] का उपयोग करके ही किया जा सकता है।
छवि: (मेरे भयानक रंग कौशल: डी)
स्पष्टीकरण: यह मोटे तौर पर कैसे जावा स्मृति प्रबंधन काम करता है। बिलकुल नहीं, किसी भी माध्यम से, लेकिन मोटे तौर पर। आपके पास ऑब्जेक्ट्स हैं, जो ए 1 का संदर्भ देता है। जब आप ऑब्जेक्ट सरणी एक्सेस करते हैं, तो आप प्रारंभिक संदर्भ बिंदु (ए 1) से शुरू करते हैं, और एक्स ब्लॉक को आगे बढ़ाते हैं। उदाहरण के लिए, इंडेक्स 1 का संदर्भ आपको बी 1 में लाएगा। बी 1 तब आपको बताता है कि आप ए 2 पर ऑब्जेक्ट की तलाश में हैं। ए 2 आपको बताता है कि इसमें सी 2 में स्थित एक क्षेत्र है। सी 2 एक पूर्णांक, एक मूल डेटा प्रकार है। खोज हो गई है।
ओ ए 1 या बी 1, लेकिन सी 1 या सी 2 का संदर्भ नहीं देता है। जब आप new ...
कहते हैं, तो यह एक नई वस्तु बनाएगा और वहां ओ रखेगा (उदाहरण के लिए, स्लॉट ए 3 में)। यह ए 1 या बी 1 को प्रभावित नहीं करेगा।
मुझे बताएं कि क्या मैं चीजों को थोड़ा सा साफ़ कर सकता हूं।
स्रोत
2012-02-16 04:44:37
क्या वास्तव में जावा में मौजूद पहली तरह लूप वाक्यविन्यास के लिए एक है? –
@ चंद्रशेखर: [प्रत्येक-लूप जावा] के लिए (http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html)। – RanRag
@ चंद्रशेखर रणरग सही है। हालांकि, यह सवाल के लिए प्रासंगिक नहीं है।शायद ओपी सिर्फ अपने कोड को दोबारा लिखो, प्रतिलिपि/पेस्ट न करें और इसलिए अपनी पसंदीदा भाषा में सोचा। –