How to create string object?
- By String literal.
- By new keyword.
1. By String literal:
String literal: A sequence of characters enclosed in double quotes. String literal is a concept of java language. It is not an object from java.lang.String. e.g. – “Hello java”. In the string literal case one object and one reference variable is created. Object is placed in string constant pool.
String literal/constant pool: is a special part of heap memory used to store string literals or string constants.
Every time a literal is created, JVM checks the string constant pool for it. If string literal is already in the pool then no new object will be created in the pool, a reference of the already existing object will returns. If string literal is not exist in the string constant pool then new instance will be created and placed in the string constant pool.
E.g. – String str1 = “javawithease”
String str2 = “javawithease”
In the above example in case of str1 JVM checks for “javawithease” in string constant pool. First time it will be not in the pool hence JVM create new instance and placed it into the pool. In case of str2 JVM will find the “javawithease” in the pool. Hence no new instance will be created and reference of the already existing instance will be return.
Java uses the concept of java literal to increase memory efficiency. Because, no new instance will be created for a string literal if it is already exist in string constant pool.
2. By new keyword:
String objects can be created with new keyword also. In this case two objects and one reference variable is created. One object is created in heap area (non-pool) and other (string literal) is placed in string constant pool. The variable will refer to the object in heap area.
e.g.- String str = new String(“javawithease”).
Java interview questions on string handling
- Why string objects are immutable in java?
- How many ways we can create the string object?
- Why java uses the concept of string literal?
- What is the basic difference between string and stringbuffer object in java?
- What is the difference between stringbuffer and stringbuilder class in java?
- How to create immutable class in java?
- What is the purpose of toString() method in java?
- Is string a keyword in java?
- Is string a primitive type or derived type?
- What is string constant pool in java?
- What are mutable and immutable objects in java?
- What is string intern in java?
- Can we call string class methods using string literals?