Compare the Difference Between Similar Terms

Difference Between

Home / Technology / IT / Programming / Difference Between String StringBuffer and StringBuilder in Java

Difference Between String StringBuffer and StringBuilder in Java

January 15, 2018 Posted by Lithmee

Key Difference – String vs StringBuffer vs StringBuilder in Java
 

String, StringBuffer and String Builder are classes in Java. String is widely used in Java programming. Once an object of String is created, it is not possible to change them. Each time a change occurs to the String, it creates a new String. Even if it is a concatenation to an existing String it creates a new String. This causes memory wastage. StringBuffer and StringBuilder classes in Java are used to modify String. The key difference between String, StringBuffer and StringBuilder in Java is that String is a class to create an object of type String that is a sequence of characters, StringBuffer is a class that is used to modify Strings that provides thread safety, and StringBuilder is a class that is used to modify Strings that do not provide thread safety.

CONTENTS

1. Overview and Key Difference
2. What is String in Java
3. What is StringBuffer in Java
4. What is StringBuilder in Java
5. Similarities Between String StringBuffer and StringBuilder in Java
6. Side by Side Comparison – String vs StringBuffer vs StringBuilder in Java in Tabular Form
7. Summary

What is String in Java?

String class is in java.lang package. Each time the programmer creates a String, it is an object of type String. Strings are immutable meaning once the object is created, it cannot be changed. Objects created using wrapper classes such as Integer, Byte, Float, Double are also immutable. A string literal is enclosed in double quotes. e.g. “Hello World”.  Each time a string literal created, the Java Virtual Machine (JVM) checks the String constant pool. If the String exists, a reference to the String constant pool is returned. If it is a new String, that object is created in the String constant pool.

Difference Between String StringBuffer and StringBuilder in Java

Figure 01: Java program using String, StringBuffer and StringBuilder

Refer the below piece of code.

String  s1= “Hello”;

s1 = s1 + “World”;

System.out.println(s1);

In the first statement,  s1 is referring to the “Hello” in the String constant pool. In the second statement, JVM does not change the existing String. Instead, it creates a new String as “Hello World” and s1 is now referring to that new String. The exiting “Hello” object still exists in the String constant pool.

If there is a code which is,

String  s1 =”Hello”;

String s2 = s1;

s1, s2 both will be referring to the String object “Hello”.

What is StringBuffer in Java?

StringBuffer class is used to make String objects mutable. Therefore, those objects can be modified. StringBuffer defines four constructors. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence [] ch)

Refer the code below,

StringBuffer s1= new StringBuffer(“Hello”);

s1.append(“World”);

System.out.println(s1);

In statement 1, s1 is referring to the “Hello” object in a heap. The object is mutable because it is created using StringBuffer. In statement 2, “World” is appended to the same “Hello” String object.

String objects created with StringBuffer class can save memory. StringBuffer provides thread safety because two threads cannot access the same method in the StringBuffer class simultaneously. Thread safety decrease StringBuffer performance. StringBuffer class contain methods such as append(), insert(), reverse(), replace().

What is StringBuilder in Java?

StringBuilder class is used to make String objects mutable. Therefore, those objects can be modified. The functionality is similar to StringBuffer, but this does not provide thread safety. StringBuilder has constructors such as StringBuilder(), StringBuilder(int size), StringBuilder(String str).

Refer the below code.

StringBuilder s1 =  new StringBuilder(“Hello”);

s1.append(“World”);

System.out.println(s1);

In statement 1, s1 is referring to the “Hello” object in a heap. The object is mutable because it is created using StringBuilder. In statement 2, “World” is appended to the same “Hello” String object.  There is no creation of completely new String object.

String objects created with StringBuilder class can save memory. Unlike in StringBuffer, StringBuilder does not provide thread safety because two threads can access the same method in the StringBuilder class simultaneously. StringBuilder class contain methods such as append(), insert(), reverse(), replace().

What is the Similarity Between String, StringBuffer and StringBuilder in Java?

  • All can be used to create Strings.

What is the Difference Between String StringBuffer and StringBuilder in Java?

String vs StringBuffer vs StringBuilder

String The string is a Java class that is used to create an object of type String, which is a sequence of characters.
StringBuffer StringBuffer is a Java class that is used to create String objects, which can be modified with thread safety.
StringBuilder StringBuilder is a class that is used to create string objects, which can be modified without thread safety.
Mutability
String The string is an immutable class.
StringBuffer StringBuffer is a mutable class.
StringBuilder StringBuilder is a mutable class.
Thread Safety
String Methods of String are thread safe.
StringBuffer Methods of StringBuffer are thread-safe and synchronized.
StringBuilder Methods of StringBuilder are not threaded safe and not synchronized.
Performance
String The string is fast.
StringBuffer StringBuffer is slow.
StringBuilder StringBuilder is fast.

Summary – String vs StringBuffer vs StringBuilder in Java 

String, StringBuffer and StringBuilder appear to be the same, but they have different meanings. All of these are Java classes. The difference between String, StringBuffer and StringBuilder in Java is that, String is class to create an object of type String, which is a set of characters, StringBuffer is a class that is used to modify Strings and provide thread safety, while StringBuilder is a class that is used to modify Strings which does not provide thread safety.

Download the PDF String vs StringBuffer vs StringBuilder in Java

You can download PDF version of this article and use it for offline purposes as per citation note. Please download PDF version here Difference Between String StringBuffer and StringBuilder in Java

Reference:

1.“String vs StringBuffer vs StringBuilder.” JournalDev, 30 July 2017. Available here
2.“Java Hungry.” Difference Between String , StringBuilder and StringBuffer Classes with Example : Java | Java Hungry. Available here 
3.tutorialspoint.com. “Java Strings.” The Point. Available here

Related posts:

Difference Between C and C++ Difference Between Graph and Tree Difference Between Directed and Undirected Graph Difference Between Java and Oracle Difference Between DLL and LIB

Filed Under: Programming Tagged With: Compare String StringBuffer and StringBuilder in Java, String in Java, String in Java Definition, String in Java Mutability, String in Java Performance, String StringBuffer and StringBuilder in Java Differences, String StringBuffer and StringBuilder in Java Similarities, String vs StringBuffer vs StringBuilder in Java, StringBuffer in Java, StringBuffer in Java Definition, StringBuffer in Java Mutability, StringBuffer in Java Performance, StringBuilder in Java, StringBuilder in Java Definition, StringBuilder in Java Mutability, StringBuilder in Java Performance

About the Author: Lithmee

Lithmee Mandula is a BEng (Hons) graduate in Computer Systems Engineering. She is currently pursuing a Master’s Degree in Computer Science. Her areas of interests in writing and research include programming, data science, and computer systems.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Request Article

Featured Posts

Difference Between Coronavirus and Cold Symptoms

Difference Between Coronavirus and Cold Symptoms

Difference Between Coronavirus and SARS

Difference Between Coronavirus and SARS

Difference Between Coronavirus and Influenza

Difference Between Coronavirus and Influenza

Difference Between Coronavirus and Covid 19

Difference Between Coronavirus and Covid 19

You May Like

What is the Difference Between Treble and Soprano

What is the Difference Between Treble and Soprano

Difference Between Hash and Weed

What is the Difference Between Alcohol Ink and Resin Dye

What is the Difference Between Alcohol Ink and Resin Dye

Difference Between Fast and Slow Metabolism

Difference Between Fast and Slow Metabolism

Difference Between Galaxy Nexus and HTC Sensation XL

Latest Posts

  • What is the Difference Between Benzoic Acid and Benzaldehyde
  • What is the Difference Between Materia Alba and Plaque
  • What is the Difference Between Panthenol and Dexpanthenol
  • What is the Difference Between Seroma and Hernia
  • What is the Difference Between Squalane and Hyaluronic Acid
  • What is the Difference Between Argumentative and Expository Essay
  • Home
  • Vacancies
  • About
  • Request Article
  • Contact Us

Copyright © 2010-2018 Difference Between. All rights reserved. Terms of Use and Privacy Policy: Legal.