मैं समझने की कोशिश कर रहा हूं कि जावा स्ट्रिंग्स कैसे अपरिवर्तनीय हैं। मुझे लगता है कि यह शायद एक आसान अवधारणा होनी चाहिए, लेकिन कई ऑनलाइन वेब पेज पढ़ने के बाद भी मुझे समझ में नहीं आता है।जावा तार कैसे काम करते हैं
मुझे समझ नहीं आता कैसे जावा स्ट्रिंग्स "अपरिवर्तनीय" कर रहे हैं।
Jacob Perkins
Jacob Perkins!
क्यों हो रहा है, तो एक स्ट्रिंग अपरिवर्तनीय माना जाता है है:
public static void main(String[] args) {
String name = "Jacob Perkins";
System.out.println(name);
name = name + "!";
System.out.println(name);
}
मेरे उत्पादन निम्नलिखित है: मैं वर्तमान में निम्नलिखित कोड है? मैं स्ट्रिंग को मान फिर से असाइन करने में सक्षम क्यों हूं?
'स्ट्रिंग' * वेरिएबल्स * अपरिवर्तनीय नहीं हैं (क्योंकि वे भिन्न होते हैं!) आपने एक नई स्ट्रिंग बनाई है और इसके संदर्भ को 'name' के संदर्भ में असाइन किया है। – dlev
मुझे अभी भी समझ में नहीं आता है। मैं जावा स्ट्रिंग्स के साथ 'अपरिवर्तनीय' शब्द क्यों देखूं? – user2301187
@ user2301187: दो चर समान स्ट्रिंग ऑब्जेक्ट को इंगित कर सकते हैं। यदि तार विचलित होते हैं, तो स्ट्रिंग में एक चर के परिवर्तन अन्य चर के संदर्भ के माध्यम से देखे जा सकते हैं। चूंकि वे नहीं हैं, इसलिए प्रत्येक चर यह जानता है कि जिस स्ट्रिंग को इंगित करता है वह 'बदल नहीं रहा है' बदल नहीं सकता है। ऐसा इसलिए किया जाता है क्योंकि उत्परिवर्तनीय तार डरावना होगा और बहुत जटिलता जोड़ें, उदा।जब भी आप इसकी एक प्रतिलिपि चाहते थे, तो आपको स्ट्रिंग की प्रतिलिपि बनाना याद रखना होगा, जो बदलेगा नहीं, या अजीब चीजें बाद में होती हैं, संभावित रूप से असुरक्षित चीजें भी! – Patashu