Last active
September 14, 2015 21:48
-
-
Save Hafthor/c6ed4223d6c1b515a999 to your computer and use it in GitHub Desktop.
Java StringConcat vs StringBuilder
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// StringConcat.java | |
public class StringConcat { | |
public static void main(String[] args) { | |
String abc = getA() + getB() + getC(); | |
System.out.println(abc); | |
} | |
private static String getA() { | |
return "ABC"; | |
} | |
private static String getB() { | |
return "123"; | |
} | |
private static String getC() { | |
return "XYZ"; | |
} | |
} | |
Compiled from "StringConcat.java" | |
public class StringConcat { | |
public StringConcat(); | |
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/StringBuilder | |
3: dup | |
4: invokespecial #3 // Method java/lang/StringBuilder."<init>":()V | |
7: invokestatic #4 // Method getA:()Ljava/lang/String; | |
10: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
13: invokestatic #6 // Method getB:()Ljava/lang/String; | |
16: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
19: invokestatic #7 // Method getC:()Ljava/lang/String; | |
22: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
25: invokevirtual #8 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; | |
28: astore_1 | |
29: getstatic #9 // Field java/lang/System.out:Ljava/io/PrintStream; | |
32: aload_1 | |
33: invokevirtual #10 // Method java/io/PrintStream.println:(Ljava/lang/String;)V | |
36: return | |
} | |
// StringBuilder.java | |
public class StringBuilder { | |
public static void main(String[] args) { | |
String abc = new java.lang.StringBuilder().append(getA()).append(getB()).append(getC()).toString(); | |
System.out.println(abc); | |
} | |
private static String getA() { | |
return "ABC"; | |
} | |
private static String getB() { | |
return "123"; | |
} | |
private static String getC() { | |
return "XYZ"; | |
} | |
} | |
Compiled from "StringBuilder.java" | |
public class StringBuilder { | |
public StringBuilder(); | |
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/StringBuilder | |
3: dup | |
4: invokespecial #3 // Method java/lang/StringBuilder."<init>":()V | |
7: invokestatic #4 // Method getA:()Ljava/lang/String; | |
10: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
13: invokestatic #6 // Method getB:()Ljava/lang/String; | |
16: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
19: invokestatic #7 // Method getC:()Ljava/lang/String; | |
22: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
25: invokevirtual #8 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; | |
28: astore_1 | |
29: getstatic #9 // Field java/lang/System.out:Ljava/io/PrintStream; | |
32: aload_1 | |
33: invokevirtual #10 // Method java/io/PrintStream.println:(Ljava/lang/String;)V | |
36: return | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment