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.