Strings in Java are Objects that are backed internally by a char array. Since arrays are immutable(cannot grow), Strings are immutable as well. Whenever a change to a String is made, an entirely new String is created.
<String_Type> <string_variable> = "<sequence_of_string>";
String str = "Geeks";
Memory allotment of String
Whenever a String Object is created as a literal, the object will be created in String constant pool. This allows JVM to optimize the initialization of String literal.
String str = "Geeks";
The string can also be declared using new operator i.e. dynamically allocated. In case of String are dynamically allocated they are assigned a new memory location in heap. This string will not be added to String constant pool.
String str = new String("Geeks");
If you want to store this string in the constant pool then you will need to “intern” it.
String internedString = str.intern(); // this will add the string to string constant pool.
It is preferred to use String literals as it allows JVM to optimize memory allocation.
An example that shows how to declare String
String s = GeeksforGeeks String s1 = GeeksforGeeks
Interfaces and Classes in Strings in Java
- CharBuffer: This class implements the CharSequence interface. This class is used to allow character buffers to be used in place of CharSequences. An example of such usage is the regular-expression package java.util.regex.
- String: String is a sequence of characters. In java, objects of String are immutable which means a constant and cannot be changed once created.
Creating a String
- There are two ways to create a string in Java:
- String literal
String s = “GeeksforGeeks”;
- Using new keyword
String s = new String (“GeeksforGeeks”);
StringBuffer is a peer class of String that provides much of the functionality of strings. The string represents fixed-length, immutable character sequences while StringBuffer represents growable and writable character sequences.
StringBuffer s = new StringBuffer("GeeksforGeeks");
The StringBuilder in Java represents a mutable sequence of characters. Since the String Class in Java creates an immutable sequence of characters, the StringBuilder class provides an alternate to String Class, as it creates a mutable sequence of characters.
StringBuilder str = new StringBuilder(); str.append("GFG");
StringTokenizer class in Java is used to break a string into tokens.
- A StringTokenizer object internally maintains a current position within the string to be tokenized. Some operations advance this current position past the characters processed. A token is returned by taking a substring of the string that was used to create the StringTokenizer object.
StringJoiner is a class in java.util package which is used to construct a sequence of characters(strings) separated by a delimiter and optionally starting with a supplied prefix and ending with a supplied suffix. Though this can also be with the help of StringBuilder class to append delimiter after each string, StringJoiner provides an easy way to do that without much code to write.
public StringJoiner(CharSequence delimiter)
Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.