स्ट्रिंग # इंटर्न () के अनुसार , internयदि स्ट्रिंग स्ट्रिंग पूल में पाई जाती है, तो स्ट्रिंग को स्ट्रिंग पूल से वापस करने का तरीका माना जाता है, अन्यथा स्ट्रिंग पूल में एक नया स्ट्रिंग ऑब्जेक्ट जोड़ा जाएगा और इस स्ट्रिंग का संदर्भ वापस आ गया है।
तो मैंने यह कोशिश की:
String s1 = "Rakesh";
String s2 = "Rakesh";
String s3 = "Rakesh".intern();
if ( s1 == s2 ){
System.out.println("s1 and s2 are same"); // 1.
}
if ( s1 == s3 ){
System.out.println("s1 and s3 are same" ); // 2.
}
मैं उम्मीद कर रहा था कि s1 and s3 are sames3 के रूप में मुद्रित किया s1 and s2 are sameजाएगा , और मुद्रित नहीं किया जाएगा। लेकिन परिणाम है: दोनों लाइनें मुद्रित हैं। तो इसका मतलब है, डिफ़ॉल्ट रूप से स्ट्रिंग स्थिरांक को नजरबंद कर दिया गया है। लेकिन अगर ऐसा है, तो हमें internविधि की आवश्यकता क्यों है ? दूसरे शब्दों में, हमें इस पद्धति का उपयोग कब करना चाहिए?
internसार्वजनिक पद्धति क्यों है । क्या हमारे पास internनिजी पद्धति के रूप में नहीं होना चाहिए , ताकि किसी के पास इसका उपयोग न हो। या इस विधि का कोई उद्देश्य है?
