जावा में स्ट्रिंग पूल की अवधारणा क्या है?



जावा में स्ट्रिंग पूल जावा हीप मेमोरी में संग्रहीत स्ट्रिंग्स का एक पूल है। यह ट्यूटोरियल आपको उदाहरण के साथ जावा स्ट्रिंग पूल के विस्तृत दृष्टिकोण के साथ मदद करेगा।

क्या आपने शब्द के बारे में सुना है 'जावा में स्ट्रिंग पूल?' ठीक है, अगर नहीं, तो आप सही जगह पर उतरे हैं। जावा में स्ट्रिंग पूल स्ट्रिंग्स का एक पूल है जिसे अंदर संग्रहीत किया जाता है हीप मेमोरी। आइए हम थोड़ा गहरा खुदाई करते हैं और जावा स्ट्रिंग पूल की इस अवधारणा को विस्तार से समझते हैं।

इस लेख में निम्नलिखित बिंदुओं पर चर्चा की जाएगी:





चलो शुरू करें!

सबसे पहले, हम समझते हैं कि वास्तव में एक स्ट्रिंग ऑब्जेक्ट कैसे बनाया जाता है!



कैसे एक स्ट्रिंग बनाने के लिए?

जावा में स्ट्रिंग ऑब्जेक्ट बनाने के लिए, दो तरीके हैं:

  • नए ऑपरेटर का उपयोग करना। उदाहरण के लिए,
स्ट्रिंग s1 = नया स्ट्रिंग ('जॉय')
  • एक स्ट्रिंग शाब्दिक या निरंतर अभिव्यक्ति का उपयोग करना। उदाहरण के लिए,
स्ट्रिंग s1 = 'जॉय' (स्ट्रिंग शाब्दिक) या स्ट्रिंग s1 = 'जो' + 'y' (स्ट्रिंग स्थिर अभिव्यक्ति)

अब, यह स्ट्रिंग पूल क्या है जिसके बारे में मैं बात कर रहा हूं और इससे संबंधित जावा में एक स्ट्रिंग का निर्माण कैसे किया जाता है। मुझे अव्यवस्था काट दो!

जावा में स्ट्रिंग पूल क्या है?

स्ट्रिंग पूल जावा हीप में एक भंडारण क्षेत्र है।



स्ट्रिंग आवंटन, सभी की तरह वस्तु आवंटन समय और स्मृति दोनों मामलों में एक महंगा मामला साबित होता है। JVM प्रदर्शन को बढ़ाने और मेमोरी ओवरहेड को कम करने के लिए स्ट्रिंग शाब्दिकों को शुरू करते हुए कुछ कदम उठाता है। JVM में बनाई गई स्ट्रिंग ऑब्जेक्ट्स की संख्या को कम करने के लिए, स्ट्रिंग क्लास स्ट्रिंग्स का एक पूल रखता है।

हर बार एक स्ट्रिंग शाब्दिक बनाया जाता है, जेवीएम पहले स्ट्रिंग शाब्दिक पूल की जाँच करता है। यदि स्ट्रिंग स्ट्रिंग पूल में पहले से मौजूद है, तो पूल किए गए इंस्टेंस का एक संदर्भ देता है। यदि स्ट्रिंग पूल में मौजूद नहीं है, तो एक नया स्ट्रिंग ऑब्जेक्ट प्रारंभ करता है और पूल में रखा जाता है।

सैद्धांतिक रूप से अवधारणा को सीखने के बाद, मैं आपको बताता हूं कि सरल उदाहरणों की मदद से जावा चरण में एक स्ट्रिंग पूल कैसे काम करता है!

स्ट्रिंग पूल जावा में कैसे काम करता है?

जब आप इस तरह एक नया स्ट्रिंग बनाते हैं:

स्ट्रिंग s1 = 'राहेल'

JVM स्वचालित रूप से जांचता है कि क्या स्ट्रिंग स्थिर पूल में समान मूल्य मौजूद है या नहीं।

  • यदि हाँ, तो यह पहले से मौजूद मूल्य पर है।
  • यदि नहीं, तो यह अपने आप एक नया तार बनाता है और इसे स्ट्रिंग पूल में जोड़ता है।

यदि आप इस व्यवहार को रोकना चाहते हैं, तो नए ऑपरेटर का उपयोग करके एक स्ट्रिंग बनाएं:

स्ट्रिंग s1 = नया स्ट्रिंग ('राहेल')

अब, यदि आप इस स्ट्रिंग को जोड़ने के लिए तैयार हैं , जावा आपको एक विधि प्रदान करता है जिसे इंटर्न () विधि कहा जाता है जिसे आप मूल आंतरिक () विधि कह सकते हैं:

S1.intern ()

अब, मैं आपको एक उदाहरण के माध्यम से स्ट्रिंग पूल के कार्यान्वयन और कार्य को दिखाऊंगा।

लेकिन उससे पहले, एक छोटा अनुस्मारक!

जैसा कि आप जानते हैं कि यदि आप == ऑपरेटर का उपयोग करके 2 वस्तुओं की तुलना कर रहे हैं तो यह मेमोरी में पतों की तुलना करता है।

इसलिए हम == का उपयोग करते हुए तारों की तुलना पूरी तरह से सुनिश्चित करेंगे कि यह एक ही वस्तु है या नहीं।

अब, हमारी कार्यान्वयन प्रक्रिया पर आशा करते हैं।

जावा में स्ट्रिंग पूल: प्रवाह आरेख

स्ट्रिंग-पूल - एडुर्का

अब हम समझ लेते हैं कि यहाँ कदम दर कदम क्या होता है:

  • क्लास कब भरी जाती है आह्वान किया गया है।
  • जेवीएम कार्यक्रम में सभी स्ट्रिंग शाब्दिकों की तलाश करता है
  • सबसे पहले, यह वैरिएबल s1 पाता है जो शाब्दिक “Apple” को संदर्भित करता है और यह मेमोरी में निर्मित होता है
  • शाब्दिक 'Apple' के लिए एक संदर्भ तब स्ट्रिंग निरंतर पूल मेमोरी में रखा गया है।
  • फिर यह एक और चर s2 पाता है जो समान स्ट्रिंग शाब्दिक 'मैंगो' को संदर्भित करता है।
  • तब यह एक और चर s3 पाता है जो शाब्दिक 'Apple' को संदर्भित करता है
  • अब जब जेवीएम को पहले से ही एक स्ट्रिंग शाब्दिक 'एप्पल' मिल गया है, तो दोनों चर एस 1 और एस 3 एक ही वस्तु यानि 'एप्पल' को संदर्भित करेंगे।

स्ट्रिंग पूल के लिए जावा कार्यक्रम

सार्वजनिक वर्ग StringPoolExperiment {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {स्ट्रिंग s1 = 'राहेल' स्ट्रिंग s2 = 'राहेल' स्ट्रिंग s3 = नया स्ट्रिंग ('राहेल') स्ट्रिंग s4 = नया स्ट्रिंग ('राहेल') आंतरिक (। ) System.out.println (s1 == s2) // true System.out.println (s1 == s3) // false System.out.println (s1 == s4) // true}}

आउटपुट:

सच
असत्य
सच

जावा प्रोग्रामिंग के लिए सबसे अच्छा सॉफ्टवेयर

उपरोक्त उदाहरण में, आप तीनों तरीकों से स्ट्रिंग इनिशियलाइज़ेशन के उपयोग को स्पष्ट रूप से देख सकते हैं

स्ट्रिंग s1 = hel राहेल ’स्ट्रिंग s2 = 'राहेल’ स्ट्रिंग s3 = नया स्ट्रिंग (St राहेल ’) स्ट्रिंग s4 = नया स्ट्रिंग (hel राहेल’)। इंटर्न ()।

कार्यक्रम का आंतरिक काम शायद अब स्पष्ट होना चाहिए।

इसके साथ, मैं अपने ब्लॉग के अंत तक पहुँच गया हूँ। मुझे आशा है कि यहाँ विस्तृत सामग्री ने आपको अपने ज्ञान के आधार को चौड़ा करने में मदद की। हम जावा दुनिया में गोता लगाते रहेंगे। बने रहें!

इसकी जाँच पड़ताल करो 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है। एडुर्का का जावा J2EE और SOA प्रशिक्षण और प्रमाणन पाठ्यक्रम उन छात्रों और पेशेवरों के लिए डिज़ाइन किया गया है जो जावा डेवलपर बनना चाहते हैं। पाठ्यक्रम आपको जावा प्रोग्रामिंग में एक शुरुआत देने के लिए डिज़ाइन किया गया है और आपको हाइबरनेट और जैसे विभिन्न जावा फ्रेमवर्क के साथ कोर और उन्नत जावा अवधारणाओं दोनों के लिए प्रशिक्षित करता है। वसंत

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया 'जावा में स्ट्रिंग पूल' ब्लॉग के टिप्पणी अनुभाग में इसका उल्लेख करें और हम आपको जल्द से जल्द वापस मिलेंगे।