स्ट्रिंग # इंटर्न () के अनुसार , 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 same
s3 के रूप में मुद्रित किया s1 and s2 are same
जाएगा , और मुद्रित नहीं किया जाएगा। लेकिन परिणाम है: दोनों लाइनें मुद्रित हैं। तो इसका मतलब है, डिफ़ॉल्ट रूप से स्ट्रिंग स्थिरांक को नजरबंद कर दिया गया है। लेकिन अगर ऐसा है, तो हमें intern
विधि की आवश्यकता क्यों है ? दूसरे शब्दों में, हमें इस पद्धति का उपयोग कब करना चाहिए?
intern
सार्वजनिक पद्धति क्यों है । क्या हमारे पास intern
निजी पद्धति के रूप में नहीं होना चाहिए , ताकि किसी के पास इसका उपयोग न हो। या इस विधि का कोई उद्देश्य है?