मैं जावा में नया हूं और ऑब्जेक्ट असाइनमेंट के संबंध में मेरे कुछ प्रश्न हैं। उदाहरण के लिए,जावा ऑब्जेक्ट असाइनमेंट
Test t1 = new Test();
Test t2 = t1;
t1.i=1;
मान लिया जाये कि चर i
टेस्ट वर्ग के भीतर परिभाषित किया गया है, मैं सही एक ही वस्तु जहां संशोधन t1.i=1
दोनों t1
और t2
को प्रभावित करता है करने के लिए दोनों t1 और t2 बिंदु ग्रहण करने के लिए कर रहा हूँ? असल में मैंने इसका परीक्षण किया और ऐसा लगता है कि मैं सही था। हालांकि जब मैं String
पर एक ही चीज़ का प्रयास करता हूं, तो संशोधन केवल एक तरफ होता है जहां दूसरी तरफ अप्रभावित होता है। इसके पीछे का कारण क्या है?
संपादित करें: जिस मामले में मैंने स्ट्रिंग के साथ प्रयास किया था।
String s1 = "0";
String s2 = s1;
s1 = "1";
System.out.println(s1);
System.out.println(s2);
मुझे स्ट्रिंग पर मामलों का परीक्षण करके मेरी गलती का एहसास है क्योंकि यह अपरिवर्तनीय है। जिस स्थिति में मैंने s1="1"
को संशोधित किया था, वास्तव में स्ट्रिंग को एस 1 में "1" के संदर्भ को वापस कर रहा है। फिर भी, मेरा सवाल बनी हुई है। क्या Test t2 = t1;
दोनों एक ही ऑब्जेक्ट में t2 और t1 बिंदु दोनों का कारण बनता है या अब प्रत्येक के पास अपनी ऑब्जेक्ट्स हैं? क्या यह स्थिति जावा पर सभी ऑब्जेक्ट्स पर लागू होती है?
'स्ट्रिंग पर एक ही चीज़ की कोशिश करें' के तहत आपका क्या मतलब है? स्ट्रिंग को संशोधित करने के लिए स्ट्रिंग ऑब्जेक्ट में कोई विधि नहीं है। कृपया ध्यान से दस्तावेज पढ़ें। – DRCB
यदि आप स्ट्रिंग पर कर रहे परीक्षण के कोड को पोस्ट करते हैं, तो हम गलत क्या कर रहे हैं, इस पर अधिक विशिष्ट हो सकते हैं –