strings: Java Strings deep dive companion code (pool/intern, indy concat vs StringBuilder JMH, text blocks, string templates)
Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01KqJyCidz3ZgRyHABv2GVJh
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
$ javac ConcatShapes.java && javap -c -p ConcatShapes (method one)
|
||||
public static java.lang.String one(java.lang.String, int);
|
||||
Code:
|
||||
0: aload_0
|
||||
1: iload_1
|
||||
2: invokedynamic #7, 0 // InvokeDynamic #0:makeConcatWithConstants:(Ljava/lang/String;I)Ljava/lang/String;
|
||||
7: areturn
|
||||
|
||||
$ javac -XDstringConcat=inline ConcatShapes.java && javap -c -p ConcatShapes (method one)
|
||||
public static java.lang.String one(java.lang.String, int);
|
||||
Code:
|
||||
0: new #7 // class java/lang/StringBuilder
|
||||
3: dup
|
||||
4: invokespecial #9 // Method java/lang/StringBuilder."<init>":()V
|
||||
7: ldc #10 // String user=
|
||||
9: invokevirtual #12 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
||||
12: aload_0
|
||||
13: invokevirtual #12 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
||||
16: ldc #16 // String n=
|
||||
18: invokevirtual #12 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
||||
21: iload_1
|
||||
22: invokevirtual #18 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
|
||||
25: invokevirtual #21 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
|
||||
28: areturn
|
||||
|
||||
Reference in New Issue
Block a user