Skip to content

Instantly share code, notes, and snippets.

@MinCha
Last active December 30, 2015 02:59
Show Gist options
  • Save MinCha/7766438 to your computer and use it in GitHub Desktop.
Save MinCha/7766438 to your computer and use it in GitHub Desktop.
Java Byte Code when constructing String
public String a() {
String msg = "aaa";
return msg;
}
public String b() {
String msg = new String("aaa");
return msg;
}
public String c() {
String a = "aaa";
String b = "aaa";
String c = "bbbb";
return a + b + c;
}
public java.lang.String a();
0 ldc <String "aaa"> [16]
2 astore_1 [msg]
3 aload_1 [msg]
4 areturn
public java.lang.String b();
0 new java.lang.String [21]
3 dup
4 ldc <String "aaa"> [16]
6 invokespecial java.lang.String(java.lang.String) [23]
9 astore_1 [msg]
10 aload_1 [msg]
11 areturn
public java.lang.String c();
0 ldc <String "aaa"> [16]
2 astore_1 [a]
3 ldc <String "aaa"> [16]
5 astore_2 [b]
6 ldc <String "bbbb"> [27]
8 astore_3 [c]
9 new java.lang.StringBuilder [29]
12 dup
13 aload_1 [a]
14 invokestatic java.lang.String.valueOf(java.lang.Object) : java.lang.String [31]
17 invokespecial java.lang.StringBuilder(java.lang.String) [35]
20 aload_2 [b]
21 invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [36]
24 aload_3 [c]
25 invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [36]
28 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [40]
31 areturn
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment