×
☰ See All Chapters

String handling in Java

Creating String Object

There are two ways to create String object:

  1. By string literal 

  2. By new keyword 

By string literal

By new keyword

String literal is created by double quote.

String s = "Hello";

String literal is created by using new key word.

String s = new String("Welcome");

Each time you create a string literal, the JVM first checks the string constant pool. If the string already exists in the pool, a reference to the pooled instance returns. If the string does not exist in the pool, a new String object instantiates then is placed in the pool.

JVM will create a new String object in normal Heap memory. The variable will refer to the object in Heap.

Applicable only for String class. (Not applicable for StringBuilder, StringBuffer classes.)

Applicable for String , StringBuilder, StringBuffer classes.

 

Consider below code with four different string variables s1, s2, s3, s4 assigned with string values. Let us see what happens inside.

package com.java4coding;

 

public class StringHandling {

        public static void main(String[] args) {

                String s1 = "Adi";

                String s2 = "Adi

                String s3 = new String("Adi");

                StringBuilder s4 = new StringBuilder("Adi");

      }

}

 

String s1 = "Adi";

New String Constant created in string constant pool, s1 is returned to this.

String s2 = "Adi

No new object is created, s2 is returned with the same above string present in string constant pool.

String s3 = new String("Adi");

JVM will create a new String object in Heap memory and the literal "Adi" will be placed in the string constant pool. The variable s3 will refer to the object in Heap.

StringBuilder s4 = new StringBuilder("Adi");

JVM will create a new String object in Heap memory and the literal "Adi" will be placed in the string constant pool. The variable s4 will refer to the object in Heap.

 

string-handling-in-java-0

Mutability concept

String class is immutable. StringBuffer and StringBuilder classes are mutable (modifiable) strings.

Let's try to understand the immutability concept by the example given below:

string-handling-in-java-1
 
string-handling-in-java-2
 

All Chapters
Author