Java StringBuffer vs StringBuilder - Advanced Guide

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

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.