StringBuffer और StringBuilder दोनों म्यूटेबल क्लास हैं जिनका उपयोग स्ट्रिंग ऑब्जेक्ट पर ऑपरेशन करने के लिए किया जा सकता है जैसे स्ट्रिंग का रिवर्स, स्ट्रिंग को जोड़ना आदि। हम स्ट्रिंग का नया ऑब्जेक्ट बनाए बिना स्ट्रिंग को मॉडिफाई कर सकते हैं। StringBuffer थ्रेड-सेफ है जबकि StringBuilder थ्रेड-सेफ नहीं है। इसलिए, यह StringBuffer से तेज है। साथ ही, स्ट्रिंग कॉनकैट + ऑपरेटर आंतरिक रूप से StringBuffer या StringBuilder क्लास का उपयोग करता है। नीचे अंतर दिए गए हैं।
| क्र. सं. | मुख्य बिंदु | String Buffer | String Builder |
|---|---|---|---|
| 1 | बुनियादी | StringBuffer Java के प्रारंभिक रिलीज के साथ पेश किया गया था | इसे Java 5 में पेश किया गया था |
| 2 | सिंक्रोनाइज़्ड | यह सिंक्रोनाइज़्ड है | यह सिंक्रोनाइज़्ड नहीं है |
| 3 | प्रदर्शन | यह थ्रेड-सेफ है। इसलिए, मल्टीपल थ्रेड एक ही समय में एक्सेस नहीं कर सकते, इसलिए, यह धीमा है। | यह थ्रेड-सेफ नहीं है इसलिए StringBuffer से तेज है |
| 4 | म्यूटेबल | यह म्यूटेबल है। हम ऑब्जेक्ट बनाए बिना स्ट्रिंग को मॉडिफाई कर सकते हैं | यह भी म्यूटेबल है |
| 5 | स्टोरेज | Heap | Heap |
StringBuilder का उदाहरण
public class StringBuilderExample{
public static void main(String[] args){
StringBuilder builder = new StringBuilder("Hi");
builder.append("Java 8");
System.out.println("StringBuilderExample" + builder);
}
}
StringBuffer का उदाहरण
public class StringBufferExample{
public static void main(String[] args){
StringBuffer buffer = new StringBuffer("Hi");
buffer.append("Java 8");
System.out.println("StringBufferExample" + buffer);
}
}