300+ [LATEST] Java String Interview Questions and Answers

Q1. How Can You Find Characters Or Substrings Within A String?

To find characters or substrings with in a string indexOf() and lastIndexOf() methods can be used.

You can also use contains() method 

public boolean contains(CharSequence s) – Returns true if and only if this string contains the specified sequence of char values. Otherwise it returns false.

Q2. What Is Intern() Method In String?

Using intern() method you can still get string object from the pool (if it exists) even if new operator is used to create a string.

When the intern method is invoked, if the pool already contains a string equal to this String object as determined by the equals(Object) method, then the string from the pool is returned. Otherwise, this String object is added to the pool and a reference to this String object is returned.

Q3. What Is String Pool? Where Is It Created In Memory?

When String literals are created they are stored in a String pool and that is a common pool; which me if there are two strings literals having the same content then those string will share the space in the pool.

When String object is created by assigning a string literal, pool will be checked to verify if there is any existing object with the same content if there is then that existing reference is used, no new object is created in that case. If no object is found with the same content then this new literal will be added in the pool.

String pool is stored in the heap.

Q4. Is Stringbuffer Class Also Final In Java?

Yes, StringBuffer class is final in Java.

Q5. How Can You Join Strings In Java?

With Java 8 join() method has been added in the String class which makes it very easy to join the multiple strings.

join method has two overloaded versions –

  • public static String join(CharSequence delimiter, CharSequence… elements) – Returns a new String composed of copies of the CharSequence elements joined together with a copy of the specified delimiter.
  • public static String join(CharSequence delimiter, Iterable elements) – Here elements is an Iterable that will have its elements joined together and delimiter is a sequence of characters that is used to separate each of the elements in the resulting String.

Q6. Is Stringbuilder Class Thread Safe?

No StringBuilder class is not thread safe. That makes it faster than StringBuffer.

Q7. Differences Among String, Stringbuffer And Stringbuilder In Java?

String is immutable where as both StringBuffer and StringBuilder are mutable.

String and StringBuffer are thread safe where as StringBuilder is not thread safe.

Q8. In How Many Ways String Object Can Be Created?

Since strings are objects so strings can of course be created using new operator. String class has more than 10 constructors to create Strings which ranges from taking nothing as parameter to taking char array, StringBuffer, StringBuilder, another String as argument.

Another and more preferred way to create Strings is to assign String literal directly to a String reference as you will do for any primitive type. For every string literal Java will automatically constructs a String object.

As example – String str = “abc”; 

Q9. Why Is String Class Immutable?

Since Java maintains a string pool where String references are shared thus changing content of any of the String will also affect the other strings sharing the same references that’s one reason why string is immutable.

Q10. Is Stringbuffer Class Thread Safe?

Yes StringBuffer class is thread safe. Methods in StringBuffer class are synchronized.

Q11. What Is Stringbuilder In Java?

StringBuilder class (Added in Java 5),just like StringBuffer, is a mutable(modifiable) sequence of characters which is in contrast to String class which is an immutable sequence of characters. Thus in case of StringBuilder length and content of the sequence can be changed through certain method calls.

Q12. Why Is String Class Final In Java?

Since String is immutable, whenever you perform any operation on string which alters its content a new string object is created containing the modified string. Which me all the methods of the String class that modify the content in any way return a new String object with the modified content. 

Now, What if you can override the method of the String class so that it modifies and return the original string reference itself? In that case all the other strings having the same data in the string pool will also get affected as the reference is shared for the String literals having the same content. 

To avoid these kind of scenarios String class is declared as final and it can’t be overridden.

Q13. Is Stringbuffer Class Also Immutable In Java?

No, StringBuffer is not immutable.

Q14. What Is String In Java?

In Java String class represents character strings which me; Strings in Java are objects and all strings are instances of the String class. Internally in String class Strings are stored as character array.

Q15. Is Stringbuilder Class Also Final In Java?

Yes StringBuilder class is final in Java.

Q16. How Can You Split A String In Java?

String provides a split method in order to split the string into one or more substring based on the given  regular expression.

As example If you have a string where one (or more) spaces are used and you want to split it around those spaces.

String str1 = “split example    program”;
String[] strArray = str1.split(“s+”);

Q17. What Is Immutable Object? Is String Object Immutable?

An immutable object is an object that would not be able to change its state after creation. Thus immutable object can only be in one state and that state can not be changed after creation of the object.

Yes String object is immutable. Once you create a String object the content of that string cannot be modified.

Q18. How To Compare Two Strings In Java?

equals() method can be used for comparing two strings in Java. If you want to ignore case then you can use equalsIgnoreCase(String anotherString) method. 

There are also compareTo() and compareToIgnoreCase() methods for comparing two strings lexicographically. Returns an integer indicating whether this string is greater than (result is > 0), equal to (result is = 0), or less than (result is < 0) the argument. 

You can also use matches() method where you can pass a regular expression for matching strings.

Q19. Which Operator Is Overloaded For String?

‘+’ operator is overloaded in Java for String. It is used for concatenating two strings.

Q20. Is String Thread Safe In Java?

Yes string is thread safe in Java as String is immutable.

Q21. What Is Stringbuffer In Java?

StringBuffer class is the companion class of String. StringBuffer is a mutable(modifiable) sequence of characters which is in contrast to String class which is an immutable sequence of characters. Thus in case of StringBuffer length and content of the sequence can be changed through certain method calls. 

Since StringBuffer is mutable a new String object is not created every time string is modified, which in turn results in less memory consumptions and not having lots of intermediate String object for garbage collection.

Q22. How To Get Characters And Substrings By Index With In A String?

You can get the character at a particular index within a string by invoking the charAt() accessor method.

String str = “Example String”;
char resChar = str.charAt(3);

Will give char ‘m’. If you want to get more than one consecutive character from a string, you can use the substring method. The substring method has two versions –

  • String substring(int beginIndex, int endIndex) – Returns a new string that is a substring of this string.
  • String substring(int beginIndex) – Returns a new string that is a substring of this string.

Q23. Can We Use String In Switch Case Statement?

Yes from Java 7 string can be used in switch case statement.