package com.pan;
public class A {
public static void main(String args[]) {
//调用B类
String a="abc";
String b="def";
String c=a+b+"adg";
String d=new String()+"ggg";
System.out.println(d.length());
}
}
翻译出来的样子
// Compiled from A.java (version 1.8 : 52.0, super bit)
public class com.pan.A {
// Method descriptor #6 ()V
// Stack: 1, Locals: 1
public A();
0 aload_0 [this]
1 invokespecial java.lang.Object() [8]
4 return
Line numbers:
[pc: 0, line: 3]
Local variable table:
[pc: 0, pc: 5] local: this index: 0 type: com.pan.A
// Method descriptor #15 ([Ljava/lang/String;)V
// Stack: 4, Locals: 5
public static void main(java.lang.String[] args);
0 ldc <String "abc"> [16]
2 astore_1 [a]
3 ldc <String "def"> [18]
5 astore_2 [b]
6 new java.lang.StringBuilder [20]
9 dup
10 aload_1 [a]
11 invokestatic java.lang.String.valueOf(java.lang.Object) : java.lang.String [22]
14 invokespecial java.lang.StringBuilder(java.lang.String) [28]
17 aload_2 [b]
18 invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [31]
21 ldc <String "adg"> [35]
23 invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [31]
26 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [37]
29 astore_3 [c]
30 new java.lang.StringBuilder [20]
33 dup
34 new java.lang.String [23]
37 dup
38 invokespecial java.lang.String() [41]
41 invokestatic java.lang.String.valueOf(java.lang.Object) : java.lang.String [22]
44 invokespecial java.lang.StringBuilder(java.lang.String) [28]
47 ldc <String "ggg"> [42]
49 invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [31]
52 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [37]
55 astore 4 [d]
57 getstatic java.lang.System.out : java.io.PrintStream [44]
60 aload 4 [d]
62 invokevirtual java.lang.String.length() : int [50]
65 invokevirtual java.io.PrintStream.println(int) : void [54]
68 return
Line numbers:
[pc: 0, line: 7]
[pc: 3, line: 8]
[pc: 6, line: 9]
[pc: 30, line: 10]
[pc: 57, line: 11]
[pc: 68, line: 13]
Local variable table:
[pc: 0, pc: 69] local: args index: 0 type: java.lang.String[]
[pc: 3, pc: 69] local: a index: 1 type: java.lang.String
[pc: 6, pc: 69] local: b index: 2 type: java.lang.String
[pc: 30, pc: 69] local: c index: 3 type: java.lang.String
[pc: 57, pc: 69] local: d index: 4 type: java.lang.String
}
我理解的样子
package com.pan;
public class A {
public static void main(String args[]) {
//调用B类
String a="abc";
String b="def";
String c=a+b+"adg";//new StringBuilder(a).append(b).append(adg).toString();
String d=new String()+"ggg";//new StringBuilder(new String()).append("ggg").toString;
System.out.println(d.length());
}
}