Home » 
        Java programming language
    
    Comparision of  StringBuffer and StringBuilder in Java
    
    
    
    
        
            By Jyoti Singh Last updated : January 31, 2024
        
    
    StringBuffer and StringBuilder in Java
    StringBuffer and StringBuilder are two classes of Java, which are used for strings. These are used whenever there is a need for a lot of modification to Strings. StringBuffer and StringBuilder objects can be modified again and again.
    Difference between StringBuffer and StringBuilder classes
    The difference between StringBuffer and String Builder is that - The methods of StringBuilder class are not synchronized that is they are not thread safe as two threads can call the StringBuilder methods simultaneously. Whereas, StringBuffer class and its methods are thread-safe.
    Which class is better to use StringBuffer or StringBuilder?
    Both of the classes have their advantages and disadvantages. In general, it is better to use the StringBuilder class because the StringBuilder class is faster than StringBuffer.
    Let's take an example to check which one is faster.
    Example demonstrating the comparison between StringBuffer and StringBuilder classes
public class ExComparison2 {
  public static void main(String arg[]) {
    long st, et;
    StringBuffer str1 = new StringBuffer(); // String buffer class object
    st = System.currentTimeMillis(); // recording current time
    
    for (int i = 0; i < 1000000; i++) {
      //append method of string buffer add the data in string object.		
      str1.append("Testing StringBuffer ");
    }
    
    et = System.currentTimeMillis();
    System.out.println("String Buffer Takes " + (et - st) + " milliSeconds");
    //(et-st) shows the time taken by the String buffer.
    StringBuilder str2 = new StringBuilder(); //String Builder class object
    st = System.currentTimeMillis();
    
    for (int i = 0; i < 1000000; i++) {
      //append method of string buffer add the data in string object.
      str2.append("Testing StringBuffer ");
    }
    et = System.currentTimeMillis();
    System.out.println("String Builder Takes " + (et - st) + " milliSeconds");
    ////(et-st) shows the time taken by the String builder.
  }
}
Output
    
 
    
    As you can see StringBuilder takes less time than StringBuffer.
    
    
    
    
    
  
    Advertisement
    
    
    
  
  
    Advertisement