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

Java में String के बजाय StringBuffer क्यों उपयोग करना चाहिए?


  • StringBuffer एक थ्रेड-सेफ, म्यूटेबल कैरेक्टर सीक्वेंस है।
  • String क्लास (इम्यूटेबल) के विपरीत, StringBuffer क्लास म्यूटेबल है। यानी हम StringBuffer ऑब्जेक्ट की सामग्री को बदल सकते हैं।
  • जब हम StringBuffer क्लास के स्ट्रिंग को संशोधित करते हैं, तो हम नया String ऑब्जेक्ट नहीं बना रहे होते, बल्कि मूल स्ट्रिंग पर ही सीधे ऑपरेट कर रहे होते हैं।
  • इस कारण से, StringBuffer क्लास String क्लास से अलग मेथड्स का सेट प्रदान करती है, जो सभी उस बफर पर सीधे ऑपरेट करते हैं जिसमें स्ट्रिंग होती है।
  • StringBuffer को केवल new ऑपरेटर के उपयोग से और StringBuffer कंस्ट्रक्टर के अंदर स्ट्रिंग मान पास करके परिभाषित किया जा सकता है।

उदाहरण

class StringBufferDemo {
    public static void main(String arg[]) {
        StringBuffer sb = new StringBuffer();
        sb.append("Java Tutorials Point");
        System.out.println(sb);
    }
}

उपरोक्त प्रोग्राम में, हमने शुरू में StringBuffer क्लास का एक इंस्टेंस बनाया और append() मेथड का उपयोग करके "Java Tutorials Point" को StringBuffer क्लास में जोड़ा।

आउटपुट

Java Tutorials Point

StringBuffer के प्रमुख मेथड्स

मेथडविवरण
append(String str)अंत में स्ट्रिंग जोड़ता है
insert(int offset, String str)निर्दिष्ट स्थिति पर स्ट्रिंग डालता है
delete(int start, int end)सबस्ट्रिंग हटाता है
replace(int start, int end, String str)सबस्ट्रिंग को बदलता है
reverse()कैरेक्टर सीक्वेंस को उलट देता है
capacity()वर्तमान क्षमता लौटाता है
ensureCapacity(int minimumCapacity)न्यूनतम क्षमता सुनिश्चित करता है
setLength(int newLength)लंबाई सेट करता है
charAt(int index)निर्दिष्ट इंडेक्स पर कैरेक्टर लौटाता है
substring(int start, int end)सबस्ट्रिंग लौटाता है
toString()स्ट्रिंग प्रतिनिधित्व लौटाता है

String vs StringBuffer - मेमोरी और प्रदर्शन

// String - हर बार नया ऑब्जेक्ट बनता है (धीमा)
String s = "";
for (int i = 0; i < 10000; i++) {
    s += "a"; // 10000 String ऑब्जेक्ट्स बनेंगे
}

// StringBuffer - एक ही ऑब्जेक्ट पर ऑपरेशन (तेज़)
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 10000; i++) {
    sb.append("a"); // केवल 1 ऑब्जेक्ट
}

नोट: StringBuilder प्राथमिकता

Java 5 के बाद से, सिंगल-थ्रेडेड कोड के लिए StringBuilder को प्राथमिकता दी जाती है क्योंकि यह StringBuffer के समान API प्रदान करता है लेकिन सिंक्रोनाइजेशन ओवरहेड के बिना तेज़ होता है। StringBuffer केवल तब उपयोग करें जब बफर वास्तव में एकाधिक थ्रेड्स द्वारा साझा किया जाता हो।

निष्कर्ष: StringBuffer म्यूटेबल स्ट्रिंग मैनिपुलेशन के लिए उपयोगी है, विशेष रूप से थ्रेड-सेफ संदर्भ में। आधुनिक सिंगल-थ्रेडेड कोड के लिए StringBuilder बेहतर विकल्प है।

  1. Mac पर Chrome के बजाय Safari का उपयोग क्यों करना चाहिए Mac पर Chrome के बजाय Safari का उपयोग क्यों करना चाहिए

    एक समय था जब Safari एक मजाक वाला वेब ब्राउज़र था, लेकिन वह समय बीत चुका है। Mac भक्त जॉन ग्रुबर के अनुसार, Safari एक शानदार ब्राउज़र है। यह एकमात्र ब्राउज़र है जो तकनीकी और सौंदर्य दोनों रूप से macOS के साथ एकीकृत होने के लिए डिज़ाइन किया हुआ महसूस होता है। लेकिन Chrome भी बहुत अच्छा है। क्या Safari

  1. अपनी ब्लॉगिंग सुरक्षित करें: हर ब्लॉगर को VPN की आवश्यकता क्यों है अपनी ब्लॉगिंग सुरक्षित करें: हर ब्लॉगर को VPN की आवश्यकता क्यों है

    डिजिटल लेखक और ब्लॉगर्स एक प्रामाणिक और उचित लेख लिखने के लिए अनगिनत स्रोतों पर शोध और विश्लेषण करते हैं। लेकिन जब ब्लॉगर्स ऐसा कर रहे होते हैं, तो वे अक्सर सेंसरशिप और क्षेत्रीय प्रतिबंधों के कारण वेबसाइटों तक पहुंचने में बाधाओं का सामना करते हैं। उनकी साइट की जानकारी, निजी विवरण और लॉगिन भी डिजिटल

  1. Firefox क्यों आपकी रोजमर्रा की जरूरतों के लिए बेहतर ब्राउज़र विकल्प है Firefox क्यों आपकी रोजमर्रा की जरूरतों के लिए बेहतर ब्राउज़र विकल्प है

    मैं लगभग पंद्रह साल से Firefox का उपयोग कर रहा हूं, कम या ज्यादा। उस अवधि के दौरान, मैंने इसे एक सुंदर परियोजना में विकसित होते देखा है, अद्भुत एक्सटेंशन की दुनिया बनते देखा है, और फिर धीरे-धीरे सिकुड़ते और फीके पड़ते देखा है क्योंकि इसने वही किया जो प्रतियोगी करते हैं, उन मुख्य लाभों को खो दिया जो