जावा में String.intern() क्या है?

Java Mem String Intern Kya Hai



जावा में, ' प्रशिक्षु () ”विधि का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि यदि बड़ी मात्रा में स्ट्रिंग डेटा संग्रहीत करती है तो समान तत्व वाले स्ट्रिंग समान मेमोरी साझा करते हैं। प्रोग्राम के लिए मेमोरी स्पेस को कम करने के लिए यह विधि बहुत उपयोगी है। उदाहरण के लिए, यदि आपके पास कर्मचारियों के नामों की एक विशाल सूची है जहाँ नाम ' जैक 'दस बार प्रकट होता है। ' प्रशिक्षु () 'विधि यह सुनिश्चित करेगी कि' जैक 'स्मृति में केवल एक स्थान घेरता है।

यह पोस्ट जावा में String.intern() मेथड के उपयोग पर चर्चा करेगी।







जावा में String.intern() क्या है?

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



वाक्य - विन्यास

बताई गई विधि का उपयोग करने के लिए, बस नीचे दिए गए सिंटैक्स का पालन करें:



डोरी . नजरबंद ( )

इस उदाहरण में, हम चर्चा करेंगे कि 'का उपयोग करने की आवश्यकता क्यों है' प्रशिक्षु () 'जावा में विधि जब स्ट्रिंग को' का उपयोग करके ढेर में बनाया जाता है डोरी() ” कंस्ट्रक्टर। सबसे पहले, 'का उपयोग करके एक स्ट्रिंग ऑब्जेक्ट बनाया जाता है' डोरी() ” कंस्ट्रक्टर। उसके बाद, स्ट्रिंग के लिए डेटा को इस ऑब्जेक्ट के पैरामीटर के रूप में पारित किया जाता है और एक चर में संग्रहीत किया जाता है:





डोरी = नया डोरी ( 'लिनक्सहिंट में आपका स्वागत है।' ) ;

उसी प्रक्रिया का पालन करके एक और स्ट्रिंग ऑब्जेक्ट बनाया जाता है:

डोरी बी = नया डोरी ( 'लिनक्सहिंट में आपका स्वागत है' ) ;

आह्वान करें ' Println ()' विधि और सेट करें 'a = b ” इस पद्धति के तर्क के रूप में। यह परिणाम को गलत के रूप में लौटाएगा क्योंकि प्रत्येक स्ट्रिंग की स्मृति में अपनी जगह होती है:



प्रणाली . बाहर . println ( == बी ) ;

यह देखा जा सकता है कि उपर्युक्त उदाहरण का आउटपुट गलत है:

उदाहरण 1: String.intern() विधि स्ट्रिंग वस्तुओं की जाँच करने के लिए

इस उदाहरण में, दो स्ट्रिंग ऑब्जेक्ट “का उपयोग करके बनाए गए हैं डोरी() ” कंस्ट्रक्टर और एक स्ट्रिंग को एक तर्क के रूप में कंस्ट्रक्टर को पास किया जाता है। अगला, आह्वान करें ' प्रशिक्षु () 'प्रत्येक स्ट्रिंग के लिए विधि और पहले स्ट्रिंग को चर में संग्रहीत करें' 'और दूसरा' में बी ”। स्थिति की जाँच करें ' ए = बी 'और' का उपयोग करें प्रिंटल () 'परिणाम प्रदर्शित करने के लिए:

डोरी = नया डोरी ( 'लिनक्सहिंट में आपका स्वागत है' ) . नजरबंद ( ) ;
डोरी बी = नया डोरी ( 'लिनक्सहिंट में आपका स्वागत है' ) . नजरबंद ( ) ;
प्रणाली . बाहर . println ( == बी ) ;

नतीजतन, यह 'वापसी करता है सत्य ' मूल्य क्योंकि ' प्रशिक्षु () 'विधि यह सुनिश्चित करती है कि स्ट्रिंग डेटा को संग्रहीत करने के लिए प्रत्येक स्ट्रिंग एक ही मेमोरी में स्थान घेरती है:

उदाहरण 2: String.intern() विधि स्ट्रिंग और स्ट्रिंग ऑब्जेक्ट की जाँच करने के लिए

इस बताए गए उदाहरण में, विभिन्न स्ट्रिंग्स को विभिन्न वेरिएबल्स में बनाया और संग्रहीत किया जाता है। इस प्रयोजन के लिए, पहले, एक चर को एक स्ट्रिंग मान के साथ आरंभीकृत किया जाता है ' लिनक्स ':

डोरी = 'लिनक्स' ;

का उपयोग करें प्रशिक्षु () 'विधि स्ट्रिंग का उपयोग करके' 'और इसे वेरिएबल में स्टोर करें' बी ':

डोरी बी = एक। नजरबंद ( ) ;

एक नया स्ट्रिंग-प्रकार ऑब्जेक्ट 'की मदद से बनाया गया है' डोरी() 'कन्स्ट्रक्टर और पास करता है' लिनक्स ” इस कंस्ट्रक्टर के पैरामीटर के रूप में। फिर, इसे वेरिएबल में स्टोर करें ' सी ':

डोरी सी = नया डोरी ( 'लिनक्स' ) ;

आह्वान करें ' प्रशिक्षु () 'चर का उपयोग करके विधि' सी 'और परिणाम को' में संग्रहीत करें डी ':

डोरी डी = सी। नजरबंद ( ) ;

अब, इन निर्मित तारों की आपस में तुलना करें। उस उद्देश्य के लिए, 'आह्वान करें' प्रिंटल () ” विधि और नीचे दिए गए कोड स्निपेट के अनुसार पैरामीटर पास करें:

प्रणाली . बाहर . println ( == बी ) ;
प्रणाली . बाहर . println ( == सी ) ;
प्रणाली . बाहर . println ( == डी ) ;
प्रणाली . बाहर . println ( बी == सी ) ;
प्रणाली . बाहर . println ( बी == डी ) ; प्रणाली . बाहर . println ( सी == डी ) ;

प्रत्येक संगत कथन का आउटपुट कंसोल पर मुद्रित होता है। हमने प्रत्येक कथन के साथ आउटपुट को मैप किया है:

यह जावा में string.intern() विधि के बारे में है।

निष्कर्ष

' स्ट्रिंग.इंटर्न () ” जावा में विधि बताई गई स्ट्रिंग ऑब्जेक्ट का संदर्भ देती है। हालाँकि, यदि स्ट्रिंग पूल में समान सामग्री / डेटा के साथ स्ट्रिंग ऑब्जेक्ट मौजूद है, तो यह पिछले स्ट्रिंग के संदर्भ को वापस कर देगा। इस पोस्ट में जावा में String.intern() मेथड के विभिन्न उपयोग के मामलों के बारे में बताया गया है।