Hero Vired Logo
Programs
BlogsReviews

More

Vired Library

Special scholarships for women candidates all through March.

Request a callback

or Chat with us on

Home
Blogs
Explaining Java StringBuffer Class with Example

Table of Content – 

Being a skilled Java developer requires a solid understanding of strings because they have a crucial role in this programming language. 

You must be able to work with strings in a variety of ways. The StringBuffer class, which facilitates manipulating and carrying out multiple operations on Strings in a variety of ways, will be introduced to you in this article. 
This article defines the StringBuffer in java and its various in-built properties. This article also explains some features and advantages of the StringBuffer in java.

What is StringBuffer in Java?

In Java, a string is a group of characters with an immutable attribute. Java thus offers a class called StringBuffer that allows for the creation of a string of characters having modifiable or mutable attributes. 

In Java, defining a class involves using two primary pointers:

  • Constructor
  • Methods

Importance and Usage of StringBuffer in Java

  • It is possible to modify the contents of a StringBuffer object without having to create a new one because these objects are mutable.
  • A StringBuffer's initial capacity can be set either when it is formed or at a later time using the ensureCapacity() method.
  • Use the append() method to attach strings, characters, or other objects to the buffer's end.
  • Use the insert() method to add objects like strings, characters, or others to the buffer at a specific location.
  • To delete characters from the buffer, use the delete() method.
  • The characters in the buffer can be reversed using the reverse() technique.

Creating Java StringBuffer Objects

Explaining Java StringBuffer Class with Example
Modifiable or mutable string objects are created using the Java StringBuffer class. Java's StringBuffer class is identical to the String class except that it can be modified. Let’s deep dive and discuss the internal working of StringBuffer in java as well as the methods of the StringBuffer class in Java with proper examples.

Syntax for Creating a New Java StringBuffer Object

Let's discuss the Syntax of the StringBuffer in java.

//Declaring the StringBuffer class.
StringBuffer m = new StringBuffer(); //m is the reference of the StringBuffer class.

The StringBuffer class has a variety of constructor types for various tasks.

Comparison with String Class in Terms of Mutability

A changeable string is one that may be altered or transformed into an existing object. To build a mutable string, the StringBuilder and StringBuffer classes are utilized. Let's use an easy example to understand the mutability of StringBuffer in java with syntax.

package stringBufferPrograms; 
public class MutableStringEx { 
public static void main(String[ ] args) 
{ 
 StringBuffer sb = new StringBuffer("HeroVired"); 
  sb.append(" Courses"); 
  System.out.println(sb); 
 } 
}

Output: 
           HeroVired Courses

No new item is made just to include "Easy." It is added to the already-existing string buffer object since when you establish a StringBuffer object, you can make any necessary changes to the object. This flexible behavior is nothing more than Java's mutability. 

The garbage collector will automatically eliminate the outdated item.

Constructors of Java StringBuffer Class

Let's discuss the constructure of StringBuffer in java:

Constructor About The Constructor
StringBuffer(String str) The constructed String buffer is expanded by the supplied string.
StringBuffer() It builds a blank String buffer with a 16-character starting capacity.
StringBuffer(int capacity) It generates a new, empty String buffer with the given length and capacity.

Methods of the Java StringBuffer Class

Let's discuss the method of StringBuffer in java.

StringBuffer Class Methods Description (Actions)
append() Used to insert content at the conclusion of a paragraph
capacity() The capacity() method can be used to determine the overall allocated capacity.
delete() Removes or eliminates certain characters from the invoked object
ensureCapacity() Guarantees that the capacity is at least equal to the specified minimum
length() The length() method can be used to determine a StringBuffer's length.
reverse() The method enables programmers to reverse characters in a StringBuffer object.
charAt() The char value at the given index in this sequence is returned by this procedure.
insert() Text is inserted at the designated index point.

Explanation of Each Java stringbuffer Methods with Examples

Now we have seen the major methods of StringBuffer in java. Now let’s understand them in detail with examples.

appendCodePoint (int codePoint):

This method adds the codePoint argument's string representation to this sequence.

Let's understand this method of StringBuffer in java with syntax.

Syntax:

public StringBuffer appendCodePoint(int codePoint)

ensureCapacity():

It is applied to expand a StringBuffer object's storage capacity. Depending on which is greater, the new capacity is going to be set to the amount we indicate or twice the previous capacity plus two (i.e., capacity+2).

Let's understand this method of StringBuffer in java with syntax.

Syntax:

void ensureCapacity(int capacity)

charAt(int index):

The char value at the given index in this sequence is returned by this procedure. Let's understand this method of StringBuffer in java with syntax.

Syntax:

public char charAt(int index)

IntStream chars():

The char values from this sequence are returned as a stream of int zero-extending by this procedure. Let's understand this method of StringBuffer in java with syntax.

Syntax:

public IntStream chars()

int codePointAt(int index):

The character, which is also the Unicode code point, at the given index is returned by this procedure. Let's understand this method of StringBuffer in java with syntax.

Syntax:

public int codePointAt(int index)

int codePointBefore(int index):

The character or the Unicode code point preceding the supplied index is returned by this procedure. Let's understand this method of StringBuffer in java with syntax.

Syntax:

public int codePointBefore(int index)

int codePointCount(int beginIndex, int endIndex):

The number of Unicode code points in the supplied text range of this sequence is returned by this method. Let's understand this method of StringBuffer in java with syntax.

Syntax:

public int codePointCount(int beginIndex, int endIndex)

IntStream codePoints():

This method is known for returning the collection of code point values from this sequence. Let's understand this method of StringBuffer in java with syntax.

Syntax:

public IntStream codePoints()

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin):

The characters in the destination character array DST are extracted from this sequence using this procedure. Let's understand this method of StringBuffer in java with syntax.

Syntax:

public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

int indexOf(String str):

This function returns the index of the first instance of the provided substring in this string. Let's understand this method of StringBuffer in java with syntax.

Syntax:

public int indexOf(String str); public int indexOf(String str, int fromIndex)

int lastIndexOf(String str):

This function returns the position of the last instance of the supplied substring within the given string. Let's understand this method of StringBuffer in java with syntax.

Syntax:

public int lastIndexOf(String str); public int lastIndexOf(String str, int fromIndex)

int offsetByCodePoints(int index, int codePointOffset):

This procedure enables programmers to return the index inside the given sequence that is offset by the codePointOffset code points. Let's understand this method of StringBuffer in java with syntax.

Syntax:

public int offsetByCodePoints(int index, int codePointOffset)

void setCharAt(int index, char ch):

The character at the given index is set to ch using this method. Let's understand this method of StringBuffer in java with syntax.

Syntax:

public void setCharAt(int index, char ch)

Differences Between StringBuffer and StringBuilder

Let's discuss difference between Stringbuilder and StringBuffer.

StringBuilder Class StringBuffer Class
It was introduced to Java 5. It is currently available in Java.
It is asynchronous. As a result, many threads are able to call StringBuilder's functions simultaneously. StringBuffer supports sync. This indicates that no more than one thread can simultaneously call a StringBuffer method.
It isn’t a thread-safe class for its asynchronous nature. It is indeed a thread-safe class as it supports synchronization.
It runs faster than StringBuffer as its multiple threads never undergo any preliminary check. It isn’t as fast as the StringBuilder as it supports synchronization, which consumes time. 

When to Use StringBuffer Versus StringBuilder

StringBuilder, a brand-new class released with Java 1.5, is comparable to StringBuffer with the exception of synchronization and thread safety. Additional methods for the StringBuffer include substring, capacity,  length, trimToSize, and others. Nevertheless, since you already have all of them in String, they are not necessary. 

Explaining Java StringBuffer Class with Example

The StringBuilder class never included these methods because of this. After considering the inadequacies of StringBuffer, the StringBuilder class was established in Java 1.5 as opposed to StringBuffer, which was first presented in Java 1.0. 

Leverage StringBuilder when you’re working in a single-threaded ecosystem or are least bothered about thread safety. For thread-safe operations, use StringBuffer in all other cases. Want to learn more about what thread in Java is? Check out this blog on Thread in Java.

Tips and Guidelines or Efficient and Effective Use of the StringBuffer Class

  • Java language. An Object class is extended (or inherited from) by StringBuffer.
  • Serializable, Appendable, and CharSequence are all StringBuffer class interfaces that have been implemented.
  • Final public class Long StringBuffer implements of objects CharSequence, Serializable, and Appendable.
  • The use of string buffers by many threads is secure. 
  • The methods can be synchronized as needed to make sure that every operation on a given instance behaves as though it were happening in some kind of sequential order.
  • This class synchronizes solely on the string buffer executing the operation, not the source, whenever an operation involving a source sequence takes place.
  • It inherits some of the notifyAll(), notifies(), hashCode(), getClass(), finalize(), equals(), and clone() methods from the Object class.

Here's a table highlighting the differences between String and StringBuffer in Java:

Difference String StringBuffer
Mutability Immutable Mutable
Modification Creates a new string Modifies the existing string
Performance Less efficient for frequent modifications More efficient for frequent modifications
Thread-safety Thread-safe (immutable) Not thread-safe (mutable)
Concatenation Creates a new string each time Modifies the existing string directly
Memory Consumes more memory due to immutability Consumes less memory due to mutability
Usage Recommended for scenarios where string values don't change frequently Recommended for scenarios where string values are modified frequently
Method synchronization No synchronization required Synchronization is required for thread safety
Inheritance Derived from the java.lang.Object class Derived from the java.lang.AbstractStringBuilder class

These are some of the key differences between String and StringBuffer in Java. It's important to choose the appropriate class based on your specific requirements to optimize performance and memory usage.

Conclusion

  • Java's StringBuffer is utilized to store mutable sequences, which boosts their effectiveness.
  • Java's StringBuffer object is thread-safe, meaning that several threads cannot access it at the same time.
  • The mutable characteristic of the StringBuffer class makes it faster than the String class.
  • The StringBuffer in Java can hold 16 bytes by default.
  • When we execute numerous dynamic addition operations, StringBuffer is typically used.
  • Due to the String class' immutable property, we are unable to use it because it will result in significant memory waste.

If you find it compelling yet want to explore some other venture where things can get really exciting and you won’t have to deal with coding all day long, consider business analytics. Pursue a business analytics course to kickstart a career in something exciting every day.

High-growth programs

Choose the relevant program for yourself and kickstart your career

DevOps & Cloud Engineering

Certificate Program in

DevOps & Cloud Engineering

In collaboration with

Microsoft

Part-time · 7.5 months

Apply by:

March 31, 2024

Download Brochure

Internship Assurance

Full Stack Development with Specialization for Web & Mobile

Certificate Program in

Full Stack Development with Specialization for Web & Mobile

Powered by

Hero Vired

Part-time · 10 months

Apply by:

Coming Soon

Download Brochure

Placement Assistance

Application Development

Certificate Program in

Application Development

Powered by

Hero Vired

Part-time · 6 Months

Apply by:

Coming Soon

Download Brochure

Internship Assurance

Cybersecurity Essentials & Risk Assessment

Certificate Program

Cybersecurity Essentials & Risk Assessment

In collaboration with

Microsoft

Part-time · 6 Months

Apply by:

Coming Soon

Download Brochure

Placement Assistance

Blogs from other domain

Carefully gathered content to add value to and expand your knowledge horizons

Hero Vired logo
Hero Vired is a premium LearnTech company offering industry-relevant programs in partnership with world-class institutions to create the change-makers of tomorrow. Part of the rich legacy of the Hero Group, we aim to transform the skilling landscape in India by creating programs delivered by leading industry practitioners that help professionals and students enhance their skills and employability.
Privacy Policy And Terms Of Use
©2024 Hero Vired. All Rights Reserved.
DISCLAIMER
  • *
    These figures are indicative in nature and subject to inter alia a learner's strict adherence to the terms and conditions of the program. The figures mentioned here shall not constitute any warranty or representation in any manner whatsoever.