स्ट्रिंग इंटर्निंग एक ऐसी प्रक्रिया है जिसमें प्रत्येक विशिष्ट स्ट्रिंग मान की एक प्रति संग्रहीत की जाती है। इसके अलावा, स्ट्रिंग्स को भी बदला नहीं जा सकता है। इस तरह, स्ट्रिंग्स में समान डेटा हो सकता है और साथ ही समान मेमोरी भी हो सकती है। इस तरह, आवश्यक मेमोरी बहुत कम हो जाएगी।
जब 'इंटर्न' फ़ंक्शन को -
. कहा जाता है-
यह दो स्ट्रिंग्स के बीच समानता की जांच करता है- स्ट्रिंग ऑब्जेक्ट स्ट्रिंग कॉन्स्टेंट पूल (एससीपी) में मौजूद है या नहीं।
-
यदि उपलब्ध हो, तो स्ट्रिंग को पूल से लाकर वापस कर दिया जाता है। अन्यथा, एक नया स्ट्रिंग ऑब्जेक्ट बनाया जाता है और पूल में जोड़ा जाता है। इस स्ट्रिंग ऑब्जेक्ट का एक संदर्भ भी दिया गया है।
-
यदि दो स्ट्रिंग्स 'a' और 'b' के लिए, a.intern() ==b.intern() सत्य है, यदि a.equals(b) सही है।
आइए एक उदाहरण देखें -
उदाहरण
public class Demo{ public static void main(String[] args){ String s1 = new String("Its"); String s2 = s1.concat("sample"); String s3 = s2.intern(); System.out.println("Checking equality of object 2 and 3 :"); System.out.println(s2 == s3); String s4 = "Its a sample"; System.out.println("Checking equality of object 3 and 4 :"); System.out.println(s3 == s4); } }
आउटपुट
Checking equality of object 2 and 3 : true Checking equality of object 3 and 4 : false
डेमो नामक एक वर्ग में मुख्य कार्य होता है। यहां स्ट्रिंग ऑब्जेक्ट्स के तीन उदाहरण परिभाषित किए गए हैं, जिसमें दूसरी स्ट्रिंग एक अलग मान के साथ पहली स्ट्रिंग का संयोजन है। तीसरी स्ट्रिंग दूसरी स्ट्रिंग पर 'इंटर्न' के लिए एक फ़ंक्शन कॉल है। इन स्ट्रिंग्स की तुलना '==' ऑपरेटर का उपयोग करके की जाती है और परिणाम कंसोल पर प्रदर्शित होता है।