जावा में स्ट्रिंग और स्ट्रिंगबर्गर क्लास के बीच अंतर

लेखक: Laura McKinney
निर्माण की तारीख: 3 अप्रैल 2021
डेट अपडेट करें: 5 मई 2024
Anonim
जावा स्ट्रिंग तुलना ट्यूटोरियल (जावा में बराबर बनाम ==)
वीडियो: जावा स्ट्रिंग तुलना ट्यूटोरियल (जावा में बराबर बनाम ==)

विषय


स्ट्रिंग और StringBuffer दोनों ही वे वर्ग हैं जो स्ट्रिंग्स पर काम करते हैं। StringBuffer वर्ग स्ट्रिंग का सहकर्मी वर्ग है। स्ट्रिंग क्लास की वस्तु निश्चित लंबाई की होती है। StringBuffer वर्ग का उद्देश्य बढ़ने योग्य है। स्ट्रिंग और स्ट्रिंगर के बीच बुनियादी अंतर यह है कि "स्ट्रिंग" वर्ग का उद्देश्य है अडिग। कक्षा का उद्देश्य "स्ट्रिंगबफ़र" परिवर्तनशील.

  1. तुलना चार्ट
  2. परिभाषा
  3. मुख्य अंतर
  4. निष्कर्ष

तुलना चार्ट

तुलना के लिए आधारतारStringBuffer
बुनियादीस्ट्रिंग ऑब्जेक्ट की लंबाई निर्धारित है।StringBuffer की लंबाई बढ़ाई जा सकती है।
परिवर्तनस्ट्रिंग वस्तु अपरिवर्तनीय है।StringBuffer ऑब्जेक्ट उत्परिवर्तनीय है।
प्रदर्शनयह संघनन के दौरान धीमा होता है।यह संघनन के दौरान तेज होता है।
यादअधिक स्मृति का उपभोग करता है।याददाश्त कम होती है।
भंडारणस्ट्रिंग लगातार पूल।हीप मेमोरी।


स्ट्रिंग की परिभाषा

"स्ट्रिंग" जावा में एक वर्ग है। कक्षा स्ट्रिंग का उद्देश्य निश्चित लंबाई का है, और याद रखने के लिए सबसे महत्वपूर्ण, स्ट्रिंग कक्षा का उद्देश्य "अपरिवर्तनीय" है। एक बार जब आप स्ट्रिंग ऑब्जेक्ट को इनिशियलाइज़ कर लेते हैं, तो आप उस ऑब्जेक्ट को फिर से संशोधित नहीं कर सकते। स्ट्रिंग के वर्ग का उद्देश्य स्ट्रिंग स्थिर पूल में संग्रहीत है।

आइए हम पहले यह समझें कि, जब भी आप कोई स्ट्रिंग बनाते हैं; आप टाइप स्ट्रिंग का ऑब्जेक्ट बनाते हैं। स्ट्रिंग स्थिरांक भी स्ट्रिंग ऑब्जेक्ट हैं।

System.out.ln ("हेल्लो दिस इज टेकपिक्स सॉल्यूशन");

उपरोक्त कथन में, स्ट्रिंग "हैलो दिस इज टेकपीक्स सॉल्यूशन" एक स्ट्रिंग स्थिरांक है।

अब एक उदाहरण की मदद से स्ट्रिंग ऑब्जेक्ट की उत्परिवर्तन को समझते हैं।

स्ट्रिंग str = नया स्ट्रिंग ("टेकीपिक्स"); str.concat ( "समाधान"); system.out.ln (str); // आउटपुट टेकीपिक्स

उपरोक्त कोड में, मैंने दो स्ट्रिंग्स "टेक्पिक्स" और "सॉल्यूशन" को समेटने की कोशिश की। जैसा कि हम जानते हैं कि जब भी कोई स्ट्रिंग बनाई जाती है तो इसका मतलब है कि स्ट्रिंग का प्रकार बनाया जाता है। इसलिए, स्ट्रिंग "टेकपीक्स" एक ऑब्जेक्ट बनाता है, जिसका संदर्भ स्ट्रिंग ऑब्जेक्ट "str" ​​को सौंपा गया है। इसके बाद, मैंने स्ट्रिंग के साथ एक और स्ट्रिंग "सॉल्यूशन" को "टीकपिक्स" को क्लास स्ट्रिंग के "कॉन्कटैट ()" विधि का उपयोग करके समेटने की कोशिश की।


जैसा कि स्ट्रिंग ऑब्जेक्ट अपरिवर्तनीय हैं, स्ट्रिंग "Teppix" के लिए कोई संशोधन नहीं किया गया है और नया स्ट्रिंग "समाधान" स्ट्रिंग स्थिर पूल में एक और ऑब्जेक्ट बनाता है। लेकिन, ऑब्जेक्ट "सॉल्यूशन" का संदर्भ किसी भी ऑब्जेक्ट द्वारा नहीं पकड़ा जाता है, इसलिए ऑब्जेक्ट सॉल्यूशन का संदर्भ खो जाता है, हालांकि यह अभी भी स्ट्रिंग निरंतर पूल में मौजूद है। जैसा कि वस्तु Teckpix के लिए कोई संशोधन नहीं किया जाता है, जब मैं वह वस्तु जिसके लिए मैंने Teckpix का संदर्भ पहले दिया था, केवल "Teckpix" स्ट्रिंग करेगा।

स्ट्रिंगबर्गर की परिभाषा

वर्ग "स्ट्रिंगबफ़र" वर्ग "स्ट्रिंग" का सहकर्मी वर्ग है। StringBuffer वर्ग स्ट्रिंग्स को अधिक कार्यक्षमता प्रदान करता है। StringBuffer वर्ग का ऑब्जेक्ट परिवर्तनशील है जो कि इसकी वस्तु को संशोधित किया जा सकता है। StringBuffer ऑब्जेक्ट की लंबाई बढ़ने योग्य है। आप स्ट्रिंग शाब्दिक के बीच में अक्षर या सबस्ट्रिंग सम्मिलित कर सकते हैं जो StringBuffer ऑब्जेक्ट या इसके अंत में असाइन किया गया है। स्ट्रिंगबफ़र 16 अतिरिक्त वर्णों के लिए स्थान आवंटित करता है जब कोई विशिष्ट लंबाई का अनुरोध नहीं किया जाता है।

आइए एक उदाहरण की मदद से स्ट्रिंगर बफ़र ऑब्जेक्ट की उत्परिवर्तन को समझते हैं:

StringBuffer Sb = नया StringBuffer ("Teckpix"); Sb.append ( "समाधान"); system.out.ln (Sb); // आउटपुट टेकीपिक्स सॉल्यूशन

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

  1. स्ट्रिंग ऑब्जेक्ट की लंबाई निर्धारित है, लेकिन आवश्यकता होने पर स्ट्रिंगरबफ़र की ऑब्जेक्ट की लंबाई बढ़ाई जा सकती है।
  2. स्ट्रिंग ऑब्जेक्ट अपरिवर्तनीय है, अर्थात इसे फिर से असाइन नहीं किया जा सकता है, जबकि स्ट्रिंगबफ़र की वस्तु परस्पर है।
  3. स्ट्रिंग ऑब्जेक्ट प्रदर्शन में धीमा है, जबकि, स्ट्रिंगबफ़र ऑब्जेक्ट तेज़ है।
  4. स्ट्रिंग ऑब्जेक्ट अधिक मेमोरी की खपत करता है, जबकि स्ट्रिंगर ऑब्जेक्ट्स कम मेमोरी का उपभोग करता है।
  5. स्ट्रिंग ऑब्जेक्ट्स को एक स्थिर पूल में संग्रहीत किया जाता है, जबकि, स्ट्रिंगबफ़र ऑब्जेक्ट्स को ढेर मेमोरी पर संग्रहीत किया जाता है।

निष्कर्ष:

स्ट्रिंग स्ट्रिंग की तुलना में स्ट्रिंगरबफ़र ऑब्जेक्ट्स स्ट्रिंग्स को अधिक कार्यक्षमता प्रदान करते हैं। इसलिए, स्ट्रिंग के बजाय स्ट्रिंगर के साथ काम करना बेहतर होता है।