Home » Difference between StringBuffer and StringBuilder

Difference between StringBuffer and StringBuilder

by Online Tutorials Library

Difference between StringBuffer and StringBuilder

Java provides three classes to represent a sequence of characters: String, StringBuffer, and StringBuilder. The String class is an immutable class whereas StringBuffer and StringBuilder classes are mutable. There are many differences between StringBuffer and StringBuilder. The StringBuilder class is introduced since JDK 1.5.

A list of differences between StringBuffer and StringBuilder is given below:

Difference between StringBuffer and StringBuilder

No. StringBuffer StringBuilder
1) StringBuffer is synchronized i.e. thread safe. It means two threads can’t call the methods of StringBuffer simultaneously. StringBuilder is non-synchronized i.e. not thread safe. It means two threads can call the methods of StringBuilder simultaneously.
2) StringBuffer is less efficient than StringBuilder. StringBuilder is more efficient than StringBuffer.
3) StringBuffer was introduced in Java 1.0 StringBuilder was introduced in Java 1.5

StringBuffer Example

BufferTest.java

Output:

hellojava  

StringBuilder Example

BuilderTest.java

Output:

hellojava  

Performance Test of StringBuffer and StringBuilder

Let’s see the code to check the performance of StringBuffer and StringBuilder classes.

ConcatTest.java

Output:

Time taken by StringBuffer: 16ms  Time taken by StringBuilder: 0ms  

You may also like