Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में स्ट्रिंग इंटर्न () विधि की क्या भूमिका है?

एक स्ट्रिंग जावा में एक वर्ग है जो वर्णों के अनुक्रम को संग्रहीत करता है, यह java.lang से संबंधित है पैकेट। एक बार जब आप एक स्ट्रिंग ऑब्जेक्ट बना लेते हैं तो आप उन्हें (अपरिवर्तनीय) संशोधित नहीं कर सकते।

संग्रहण

सभी स्ट्रिंग ऑब्जेक्ट्स को हीप क्षेत्र में एक अलग मेमोरी लोकेशन में संग्रहीत किया जाता है, जिसे स्ट्रिंग कॉन्स्टेंट पूल के रूप में जाना जाता है। ।

जब भी आप स्ट्रिंग मान को परिभाषित करते हैं तो JVM स्ट्रिंग निरंतर पूल में दिए गए मान के साथ एक स्ट्रिंग ऑब्जेक्ट बनाता है। इसलिए, यदि आप उपरोक्त प्रोग्राम चलाते हैं तो स्ट्रिंग स्थिरांक पूल में दो स्ट्रिंग मान बन जाते हैं।

जावा में स्ट्रिंग इंटर्न () विधि की क्या भूमिका है?

इंटर्न () विधि

यह विधि अद्वितीय स्ट्रिंग मानों के पूल से वर्तमान स्ट्रिंग का मान लौटाती है। जब भी आप किसी विशेष स्ट्रिंग पर इस विधि का आह्वान करते हैं, यदि स्ट्रिंग स्थिरांक पूल में पहले से ही इसके बराबर एक स्ट्रिंग है (ऑब्जेक्ट वर्ग की बराबर विधि के अनुसार), तो इसे वापस कर दिया जाएगा। यदि नहीं, तो वर्तमान स्ट्रिंग को एक संदर्भ लौटाते हुए स्ट्रिंग स्थिरांक पूल में जोड़ा जाता है।

यानी यदि आप इस विधि को समान सामग्री वाले दो स्ट्रिंग्स पर लागू करते हैं तो यह गारंटी है कि वे समान मेमोरी साझा करते हैं।

कई डुप्लिकेट मानों के मामले में कब्जा की गई मेमोरी को कम करने के लिए यह विधि काम आती है।

उदाहरण

निम्नलिखित में हम एक ही सामग्री के साथ दो स्ट्रिंग्स (नए कीवर्ड का उपयोग करके) बना रहे हैं और उनकी तुलना "==" ऑपरेटर के उपयोग से कर रहे हैं। हालांकि दोनों वस्तुओं का मूल्य समान है, क्योंकि वे एक ही वस्तु (मेमोरी) को संदर्भित नहीं करते हैं, परिणाम गलत होगा।

public class InternExample {
   public static void main(String args[]) {
      String str1 = new String("Hello");
      str1 = str1.intern();
      String str2 = "Hello";
      str2 = str2.intern();
      System.out.println(str1.equals(str2));
   }
}

आउटपुट

false

लेकिन, यदि आप दोनों वस्तुओं की तुलना करने से पहले उन पर इंटर्न विधि लागू करते हैं, क्योंकि यह सुनिश्चित करता है कि दोनों वस्तुओं की समान स्मृति है, यदि उनकी सामग्री समान है, तो परिणाम सही होगा।

public class InternExample {
   public static void main(String args[]) {
      String str1 = new String("Hello");
      str1 = str1.intern();
      String str2 = new String("Hello");
      str2 = str2.intern();
      System.out.println(str1==str2);
   }
}

आउटपुट

true

  1. जावा में StringIndexOutOfBoundsException क्या है?

    जावा में वर्णों के अनुक्रम को संग्रहीत करने के लिए स्ट्रिंग्स का उपयोग किया जाता है, उन्हें वस्तुओं के रूप में माना जाता है। java.lang पैकेज का स्ट्रिंग वर्ग एक स्ट्रिंग का प्रतिनिधित्व करता है। आप या तो नए कीवर्ड (किसी भी अन्य ऑब्जेक्ट की तरह) का उपयोग करके या शाब्दिक (किसी भी अन्य आदिम डेटाटाइप क

  1. Java में StringWriter का क्या महत्व है?

    स्ट्रिंगराइटर वर्ग लेखक . का उपवर्ग है क्लास और यह स्ट्रिंग को आउटपुट स्ट्रीम में लिखता है। एक स्ट्रिंग लिखने के लिए, यह वर्ण स्ट्रीम स्ट्रिंग को स्ट्रिंग बफ़र . में एकत्रित करती है और फिर एक स्ट्रिंग का निर्माण किया। StringWriter का बफ़र डेटा के अनुसार स्वचालित रूप से बढ़ता है। StringWriter वर्ग

  1. जावा में सेटबाउंड () विधि का क्या उपयोग है?

    लेआउट प्रबंधक जोड़े गए घटकों की स्थिति और आकार को स्वचालित रूप से तय करने के लिए उपयोग किया जाता है। एक लेआउट मैनेजर की अनुपस्थिति में, घटकों की स्थिति और आकार को मैन्युअल रूप से सेट करना पड़ता है। सेटबाउंड्स() ऐसी स्थिति में स्थिति और आकार निर्धारित करने के लिए विधि का उपयोग किया जाता है। घटकों