The general definition of String is a sequence of character. In other word you can say string is an alphanumeric value, which means it can be alphabets or numbers. String in Java is an object. Java provides String class to store the string values. The string class implements the three classes (Serializable, Comparable and CharSequence).
Ways to create String variable
There are two ways to create string variables in Java.
- String literal – allocate space in String constant pool
- new String () – allocate space in Heap memory
String s1 = "Hi"; // String literal - allocate space in the string constant pool String s2 = "Hi"; // String literal - create a reference of s1 String s3 = new String("Hi"); // allocate space in heap memory String s4 = s3.intern(); // creates a reference of s1
In Java, String is immutable, which means when you create the String object JVM allocate space in String constant pool. When you change the value in the same object JVM will allocate new space in String constant pool.
String Buffer and String Builder
In Java String class in immutable, It means JVM will be allocated the new space in the string constant pool whenever you change the value of string objects. So Java provides the two classes to make string objects are mutable. Mutable means whenever you change the values in string object, the JVM will not be allocated the new space. And when you create string object using string buffer or string builder, the JVM will be allocated space in Heap memory.
If you want to know the difference between String, string buffer and string builder please refer this blog https://samplecoder.com/string-vs-string-builder-vs-string-buffer