public static void main(String[] args) {
        String a = new String("abc");
        String b = "abc";
        String c = "abc" + "KDF" + "gh" +"rt" +"jk";
    }
Please find below byte code of the code.
Compiled from "NumOfStringObject.java"
public class com.practise.general.NumOfStringObject extends java.lang.Object{
public com.practise.general.NumOfStringObject();
  Code:
   0:   aload_0
   1:   invokespecial   #1; //Method java/lang/Object."<init>":()V
   4:   return
public static void main(java.lang.String[]);
  Code:
   0:   new     #2; //class java/lang/String
   3:   dup
   4:   ldc     #3; //String abc
   6:   invokespecial   #4; //Method java/lang/String."<init>":(Ljava/lang/Strin
g;)V
   9:   astore_1
   10:  ldc     #3; //String abc
   12:  astore_2
   13:  ldc     #5; //String abcKDFghrtjk
   15:  astore_3
   16:  return
}
I have no experience in reading/understanding byte code, i guess total of 3 String objects are getting created.
let me know your thoughts.
 
     
     
     
    