Skip to content

Instantly share code, notes, and snippets.

@gaul
Created June 18, 2013 17:02
Show Gist options
  • Save gaul/5807246 to your computer and use it in GitHub Desktop.
Save gaul/5807246 to your computer and use it in GitHub Desktop.
Demonstrate implicit StringBuilder
$ cat foo.java
public class foo {
private foo() {}
public static String method(int x, Long y) {
return "x: " + x + " y: " + y.longValue();
}
}
$ javac foo.java
$ javap -c foo
Compiled from "foo.java"
public class foo extends java.lang.Object{
public static java.lang.String method(int, java.lang.Long);
Code:
0: new #2; //class java/lang/StringBuilder
3: dup
4: invokespecial #3; //Method java/lang/StringBuilder."<init>":()V
7: ldc #4; //String x:
9: invokevirtual #5; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: iload_0
13: invokevirtual #6; //Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
16: ldc #7; //String y:
18: invokevirtual #5; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: aload_1
22: invokevirtual #8; //Method java/lang/Long.longValue:()J
25: invokevirtual #9; //Method java/lang/StringBuilder.append:(J)Ljava/lang/StringBuilder;
28: invokevirtual #10; //Method java/lang/StringBuilder.toString:()Ljava/lang/String;
31: areturn
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment