public class Test { public void test(){ String ss="aaa"+"bbb"+"ccc"; } public void yyyy(){ String o="bbb"; String ss="aaa"+o+"ccc"; } public void xxxx(){ String tt=""; tt+="aaa"; tt+="bbb"; tt+="ccc"; } }
C:Users***>javap -v Test.class Classfile /C:/Users/***/Test.class Last modified 2017-7-12; size 635 bytes MD5 checksum 36f408af7481f6ce1a69797b2b6a3d9b Compiled from "Test.java" public class Test minor version: 0 major version: 52 flags: ACC_PUBLIC, ACC_SUPER Constant pool: #1 = Methodref #12.#22 // java/lang/Object."<init>":()V #2 = String #23 // aaabbbccc #3 = String #24 // bbb #4 = Class #25 // java/lang/StringBuilder #5 = Methodref #4.#22 // java/lang/StringBuilder."<init>":()V #6 = String #26 // aaa #7 = Methodref #4.#27 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; #8 = String #28 // ccc #9 = Methodref #4.#29 // java/lang/StringBuilder.toString:()Ljava/lang/String; #10 = String #30 // #11 = Class #31 // Test #12 = Class #32 // java/lang/Object #13 = Utf8 <init> #14 = Utf8 ()V #15 = Utf8 Code #16 = Utf8 LineNumberTable #17 = Utf8 test #18 = Utf8 yyyy #19 = Utf8 xxxx #20 = Utf8 SourceFile #21 = Utf8 Test.java #22 = NameAndType #13:#14 // "<init>":()V #23 = Utf8 aaabbbccc #24 = Utf8 bbb #25 = Utf8 java/lang/StringBuilder #26 = Utf8 aaa #27 = NameAndType #33:#34 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; #28 = Utf8 ccc #29 = NameAndType #35:#36 // toString:()Ljava/lang/String; #30 = Utf8 #31 = Utf8 Test #32 = Utf8 java/lang/Object #33 = Utf8 append #34 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; #35 = Utf8 toString #36 = Utf8 ()Ljava/lang/String; { public Test(); descriptor: ()V flags: ACC_PUBLIC Code: stack=1, locals=1, args_size=1 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return LineNumberTable: line 1: 0 public void test(); descriptor: ()V flags: ACC_PUBLIC Code: stack=1, locals=2, args_size=1 0: ldc #2 // String aaabbbccc 2: astore_1 3: return LineNumberTable: line 3: 0 line 4: 3 public void yyyy(); descriptor: ()V flags: ACC_PUBLIC Code: stack=2, locals=3, args_size=1 0: ldc #3 // String bbb 2: astore_1 3: new #4 // class java/lang/StringBuilder 6: dup 7: invokespecial #5 // Method java/lang/StringBuilder."<init>":()V 10: ldc #6 // String aaa 12: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: aload_1 16: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 19: ldc #8 // String ccc 21: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 24: invokevirtual #9 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 27: astore_2 28: return LineNumberTable: line 6: 0 line 7: 3 line 8: 28 public void xxxx(); descriptor: ()V flags: ACC_PUBLIC Code: stack=2, locals=2, args_size=1 0: ldc #10 // String 2: astore_1 3: new #4 // class java/lang/StringBuilder 6: dup 7: invokespecial #5 // Method java/lang/StringBuilder."<init>":()V 10: aload_1 11: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 14: ldc #6 // String aaa 16: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 19: invokevirtual #9 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 22: astore_1 23: new #4 // class java/lang/StringBuilder 26: dup 27: invokespecial #5 // Method java/lang/StringBuilder."<init>":()V 30: aload_1 31: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 34: ldc #3 // String bbb 36: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 39: invokevirtual #9 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 42: astore_1 43: new #4 // class java/lang/StringBuilder 46: dup 47: invokespecial #5 // Method java/lang/StringBuilder."<init>":()V 50: aload_1 51: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 54: ldc #8 // String ccc 56: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 59: invokevirtual #9 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 62: astore_1 63: return LineNumberTable: line 10: 0 line 11: 3 line 12: 23 line 13: 43 line 14: 63 } SourceFile: "Test.java" C:Users***>