इंटर्न() विधि स्ट्रिंग वर्ग . का स्ट्रिंग दोहराव की समस्याओं से निपटने के लिए इस्तेमाल किया जा सकता है जावा में। इंटर्न () का उपयोग करना हम डुप्लिकेट स्ट्रिंग इंस्टेंस द्वारा खपत की गई बहुत सारी मेमोरी को बचा सकते हैं . एक स्ट्रिंग डुप्लिकेट होती है यदि उसमें अन्य स्ट्रिंग के समान सामग्री होती है लेकिन इसे विभिन्न मेमोरी स्थानों पर कब्जा किया जा सकता है।
हम जानते हैं कि JVM एक अलग हीप मेमोरी को बनाए रखता है प्रदर्शन के लिए स्ट्रिंग अक्षर के लिए। एक बार जब हम एक स्ट्रिंग को शाब्दिक घोषित कर देते हैं तो यह इस पूल . पर जाएगा और यदि कोई अन्य चर समान शाब्दिक मान के साथ असाइन किया गया है, तो उसे पूल से चुना जाएगा नई वस्तु बनाने के बजाय और इसे ढेर . में संग्रहीत करना . लेकिन अगर स्ट्रिंग को नए निर्माण . का उपयोग करके घोषित किया जाता है r, पूल में शाब्दिक मौजूद होने पर भी एक नई वस्तु बनाई जाएगी। इससे बचने के लिए और JVM को पूल से शाब्दिक चयन करने के लिए बाध्य करने के लिए हम intern() . का उपयोग करते हैं विधि।
जावा स्वचालित रूप से सभी स्ट्रिंग्स को डिफ़ॉल्ट रूप से इंटर्न करता है। इंटर्न () स्ट्रिंग में विधि का उपयोग n . के साथ किया जा सकता है ईव स्ट्रिंग () ==ऑपरेटर द्वारा उनकी तुलना करने के लिए।
उदाहरण
public class StringInternClassTest { public static void main(String[] args) { String s1 = "Tutorix"; String s2 = "Tutorix"; String s3 = new String("Tutorix"); final String s4 = s3.intern(); String s5 = "?Tutorix".substring(1); String s6 = s5.intern(); System.out.println(s1 == s2); System.out.println(s2 == s3); System.out.println(s3 == s4); System.out.println(s1 == s3); System.out.println(s1 == s4); System.out.println(s1 == s5); System.out.println(s1 == s6); System.out.println(s1.equals(s2)); System.out.println(s2.equals(s3)); System.out.println(s3.equals(s4)); System.out.println(s1.equals(s4)); System.out.println(s1.equals(s3)); } }
आउटपुट
true false false false true false true true true true true true