Last Updated on December 28, 2021 by RAJENDRAPRASAD
StringBuffer and StringBuilder in java in hindi – Hello दोस्तों rajhindime.in में आपका स्वागत है |
दोस्तों, पिछले पोस्ट Why String is immutable in java in Hindi | String immutability क्याऔरक्योंहै ? में आपने String immutability, के बारे में विस्तृत जानकारी प्राप्त की |
आज के इस पोस्ट में आप StringBuffer and StringBuilder के बारे में विस्तार से जानेंगे |
जैसा कि आप जानते हैं, Java में String object immutable है, जिसकी value को एक बार initialize होने के बाद, फिर से change नहीं किया जा सकता |
जब भी हम immutable object की value अथवा state को change करते हैं, तब उस स्थिति में पहले से जो object बना है, उसकी value में परिवर्तन होने की बजाय, नया object create हो जाता है| इसका अर्थ यह है कि पहले वाली value change तो नहीं होती बल्कि उसकी जगह, नया object बन जाता हैं नई value के साथ |
इस तरह old अर्थात पुराना object waste हो जाता है और heap memory में space occupy करते रहता है, धीरे धीरे किसी बड़े application के case में heap memory में बहुत सारा garbage जमा हो जाता है, जिसे बाद में Garbage Collection के द्वारा handle किया जाता है |
इसलिए Java में StringBuffer और StringBuilder को लाया गया, जिसका उपयोग करके String को आसानी से Manipulate अर्थात उसकी value में फेर-बदल किया जा सकता है और इससे heap memory में unused object के रूप में कोई wastage / Garbage भी उत्पन्न नहीं होता |
आइएअब StringBuffer और StringBuilder के बारे में विस्तार से जाने |
StringBuffer और StringBuilder
जब भी हमे किसी program या application में बार – बार किसी String की value को change करना हो तो, उस स्थिति में StringBuffer और StringBuilder का use किया जाता है |
StringBuffer और StringBuilder दोनोंही java में mutable objectहैं |
इनमें String manipulation के लिएअनेको methods उपलब्ध हैं जैसे, append(), insert(), setCharAt(), setLength() and delete()
StringBuffer और StringBuilder class के object को बार – बार modify किया जा सकता है, और वह भी बिना किसी unused object को छोड़े बगैर, जैसा कि String object में बिल्कुल नहीं होता |
StringBuffer class java में शुरुआत से ही है जबकि, StringBuilder class को java 5 में introduce किया गया |
StringBuffer और StringBuilder में फर्क बस इतना ही है कि, StringBuffer Class, thread – safe (Synchronised) होते है, जबकि StringBuilder नहीं |
चूँकि, StringBuilder object synchronised नहीं होते, इसलिए ये StringBuffer object की तुलना में fast execute होते हैं | फिर भी, जहाँ thread safety अर्थात synchronisation बहुत जरुरी हो, वहाँ StringBuffer object को ही use करना चाहिए |
StringBuffer:
StringBuffer यह mutable होते हैं | जहाँ String Class fixed-length, immutable character sequence को represent करते हैं, वहीं StringBuffer Class growable और writable character sequence को represent करते हैं |
StringBuffer में characters और substrings को बीच में अथवा end में append किया जा सकता है |
StringBuffer use करने के लिए सबसे पहले हमे StringBuffer object को create करना होता है |
Syntax :
StringBuffer str = new StringBuffer();
Program 1:
public class StringBufferDemo1 {
public static void main(String[] args) {
StringBuffer str = new StringBuffer("Raj");
str.append("HindiMe");
System.out.println(str);
}
}
OutPut:
RajHindiMe
StringBuilder :
StringBuider यह भी mutable होते हैं |
StringBuilder में भीcharacters और substrings को बीच में अथवा end में append किया जा सकता है |
सरल शब्दों में कहे तो, StringBuilder बिल्कुल StringBuffer जैसे ही कार्य करता है और इसमें भी वो सारे methods present है, जो StringBuffer में उपलब्ध है |
फर्क/ difference बस इतना ही है कि, StringBuilder thread – safe नहीं होते |
StringBuilder use करने के लिए भी सबसे पहले हमे StringBuilder object को create करना होता है |
Syntax :
StringBuilder str = new StringBuilder();
Program 2:
public class StringBuilderDemo1 {
public static void main(String[] args) {
StringBuilder str = new StringBuilder("Raj");
str.append("HindiMe");
System.out.println(str);
}
}
OutPut:
RajHindiMe
StringBuffer vs StringBuilder:
StringBuffer | StringBuilder |
Java 1 में introduce किया गया | Java 5 में introduce किया गया |
Thread-safe और synchronized | not thread-safe और not-synchronized. |
StringBuffer को multi-threaded environment में use किया जाता है | StringBuilder को single-threaded environment में use किया जाता है |
Performance StringBuilder की तुलना में slow होता है | Performance StringBuffer की तुलना में fast होता है |
Syntax: StringBuffer bfr = new StringBuffer(str); | Syntax: StringBuilder bldr = new StringBuilder(str); |
StringBuffer को StringBuilder में कैसे बदले ?
Step 1: सबसे पहले StringBuffer object को, String class में present toString() method का use करके String object में बदले |
StringBuffer sbr = new StringBuffer("RajHindiMe");
String str = sbr.toString();
Step 2: constructor का use करके StringBulder class का object create करे |
StringBuilder sbl = new StringBuilder(str);
Program 3:
public class StringBufferToStringBuilderDemo1 {
public static void main(String args[]) {
StringBuffer sbr = new StringBuffer("RajHindiMe");
String str = sbr.toString();
StringBuilder sbl = new StringBuilder(str);
System.out.println(sbl);
}
}
Output :
RajHindiMe
StringBuilder को StringBuffer में कैसे बदले ?
Step 1: सबसे पहले StringBuilder object को, String class में present toString() method का use करके String object में बदले |
Step 2: constructor का use करके StringBuffer class का object create करे |
StringBuffer sbr = new StringBuffer(str);
Program 4:
public class StringBuilderToStringBufferDemo1 {
public static void main(String args[]) {
StringBuilder sbl = new StringBuilder("RajHindiMe");
String str = sbl.toString();
StringBuffer sbr = new StringBuffer(str);
System.out.println(sbr);
}
}
Output :
RajHindiMe
आइए कुछ अन्य program द्वारा विभिन्न method को समझे |
Program 5:
public class StringBuider_insertDemo {
public static void main(String args[]) {
StringBuilder sbl = new StringBuilder("RajHindiMe is site to learn Java");
int pos = sbl.indexOf("site");
sbl.insert(pos, "best ");
System.out.println(sbl);
}
}
Output :
RajHindiMe is best site to learn Java
Program 6:
public class StringBuider_deleteDemo {
public static void main(String args[]) {
StringBuilder sbl = new StringBuilder("Raj****HindiMe");
sbl.delete(3, 7);
System.out.println(sbl);
}
}
Output :
RajHindiMe
Program 7:
public class StringBuider_setCharAtDemo {
public static void main(String args[]) {
StringBuilder sbl = new StringBuilder("Ra*HindiMe");
sbl.setCharAt(2, 'j');
System.out.println(sbl);
}
}
Output :
RajHindiMe
Program 8 :
public class StringBuffer_setLengthDemo {
public static void main(String args[]) {
StringBuffer sbl = new StringBuffer("RajHindiMe");
sbl.setLength(5);
System.out.println(sbl);
}
}
Output :
RajHi
Conclusion – आज आपने क्या सीखा
इस post में आपने जाना कि, जब भी हमे किसी program या application में बार – बार किसी String की value को change करना हो तो, उस स्थिति में StringBuffer और StringBuilder का use किया जाता है |
आशा है कि, आपको मेरा यह Blog StringBuffer and StringBuilder in java in hindi – StringBuffer and StringBuilder क्याहै ? जाने हिंदी में, जरूर पसंद आया होगा |
अगर आप इस post से related कोई सवाल पूँछना चाहते हैं अथवा कोई सुझाव देना चाहते हैं तो comment करके जरूर बताएं, मैं उसका reply जरूर दूँगा |
इस post को अपना कीमती समय देने के लिए बहुत बहुत धन्यवाद् | फिर मिलेंगें |
Awwwsssmmm session 🔥
Thank you, it means a lot. keep reading
It was great and easy to understand.Thanks a lot
Thank you Neetu !
Keep learning.