👱 String variables are stored in “constant string pool”. Once the string reference changes the old value that exists in the “constant string pool”, it cannot be erased.
Example:String name = “book”;
Constant string pool
.
String Buffer name =”book”;

Example:String name = “book”;
Constant string pool

If the name value has changed from “book” to “pen”.
Constant string pool
Constant string pool

- Then the older value retains in the constant string pool.
- Basically, string is a sequence of characters but it’s not a primitive type.
- When we create a string in java, it actually creates an object of type String.
- String is the immutable object which means that it cannot be changed once it is created.
- String is the only class where operator overloading is supported in Java. We can concat two strings using the + operator. For example "a"+"b"="ab".
- Java provides two useful classes for String manipulation – StringBuffer and StringBuilder.
String Buffer:
- Here string values are stored in a stack. If the values are changed then the new value replaces the older value.
- The string buffer is synchronized which is thread-safe.
- Performance is slower than the String Builder.
String Buffer name =”book”;

Once the name value has been changed to “pen” then the “book” is erased in the stack.

String Builder:This is same as String Buffer except for the String Builder which is not threaded safety that is not synchronized. So obviously performance is fast.
Java String Pool
Memory management is the most important aspect of any programming language. Memory management in case of string in Java is a little bit different than any other class. To make Java more memory efficient, JVM introduced a special memory area for a string called String Constant Pool.
Comments
Post a Comment