Difference between StringBuilder and StringBuffer

后端 未结 30 2435
独厮守ぢ
独厮守ぢ 2020-11-21 15:06

What is the main difference between StringBuffer and StringBuilder? Is there any performance issues when deciding on any one of these?

30条回答
  •  悲哀的现实
    2020-11-21 15:38

    StringBuffer

    StringBuffer is mutable means one can change the value of the object . The object created through StringBuffer is stored in the heap . StringBuffer has the same methods as the StringBuilder , but each method in StringBuffer is synchronized that is StringBuffer is thread safe .

    because of this it does not allow two threads to simultaneously access the same method . Each method can be accessed by one thread at a time .

    But being thread safe has disadvantages too as the performance of the StringBuffer hits due to thread safe property . Thus StringBuilder is faster than the StringBuffer when calling the same methods of each class.

    StringBuffer value can be changed , it means it can be assigned to the new value . Nowadays its a most common interview question ,the differences between the above classes . String Buffer can be converted to the string by using toString() method.

    StringBuffer demo1 = new StringBuffer(“Hello”) ;
    // The above object stored in heap and its value can be changed .
    
    demo1=new StringBuffer(“Bye”);
    // Above statement is right as it modifies the value which is allowed in the StringBuffer
    

    StringBuilder

    StringBuilder is same as the StringBuffer , that is it stores the object in heap and it can also be modified . The main difference between the StringBuffer and StringBuilder is that StringBuilder is also not thread safe. StringBuilder is fast as it is not thread safe .

    StringBuilder demo2= new StringBuilder(“Hello”);
    // The above object too is stored in the heap and its value can be modified
    
    demo2=new StringBuilder(“Bye”);
    // Above statement is right as it modifies the value which is allowed in the StringBuilder
    

    Resource: String Vs StringBuffer Vs StringBuilder

提交回复
热议问题