Overview
StringBuffer aur StringBuilder Java ke mutable character sequences hain. Dono String operations ko efficient banate hain by avoiding creating new objects on modification.
Key Differences
Feature | StringBuffer | StringBuilder |
---|---|---|
Release Version | Java 1.0 | Java 5 (1.5) |
Thread Safety | Synchronized, thread-safe | Not synchronized, not thread-safe |
Performance | Slower due to synchronization | Faster, preferred for single-threaded |
Use Case | Multi-threaded environment | Single-threaded environment |
StringBuffer Usage Examples
StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");
System.out.println(sb); // Hello World
sb.insert(5, ",");
System.out.println(sb); // Hello, World
sb.replace(6, 11, "Java");
System.out.println(sb); // Hello, Java
sb.delete(5, 6);
System.out.println(sb); // Hello Java
StringBuilder Usage Examples
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb); // Hello World
sb.insert(5, ",");
System.out.println(sb); // Hello, World
sb.replace(6, 11, "Java");
System.out.println(sb); // Hello, Java
sb.delete(5, 6);
System.out.println(sb); // Hello Java
Conversions Between String, StringBuffer, and StringBuilder
StringBuffer ya StringBuilder ko String me convert karna simple hai using toString()
.
StringBuffer sbuf = new StringBuffer("Hello");
String s = sbuf.toString();
StringBuilder sbld = new StringBuilder(s);
Direct conversion between StringBuffer and StringBuilder nahi hota, pehle String me convert karke phir dusre me.
Advanced Usage Tips
- Initial capacity set karna performance improve karta hai to avoid resizing.
new StringBuilder(50);
setCharAt()
se kisi specific position ka character change kar sakte hain.reverse()
se string ko reverse kar sakte hain.ensureCapacity()
minimum capacity ensure karta hai.
StringBuilder sb = new StringBuilder(50);
sb.append("Welcome");
sb.setCharAt(0, 'w');
sb.reverse();
System.out.println(sb);
When to Use What?
StringBuffer: Jab multiple threads ek string ko modify kar sakte hain, tab use karen.
StringBuilder: Jab aapka code single-threaded ho ya synchronization na chahiye, tab ye better hai.
Summary
StringBuffer aur StringBuilder dono efficient mutable string handling ke liye hain. Thread safety aur performance ke hisaab se inka chunav karna chahiye.