我是新手。
请问一下。
class a{
public static void main(String [] args)
{
String str= null;
str += "aaa";
System.out.println(str);
}
}
为什么打出来的str是"nullaaa"?而
class a{
public static void main(String [] args)
{
String str= null;
str = "aaa";
System.out.println(str);
}
}
打出来的str 是"aaa"呢?
我是想问具体的过程是如何实现的呢?谢谢
请问一下。
class a{
public static void main(String [] args)
{
String str= null;
str += "aaa";
System.out.println(str);
}
}
为什么打出来的str是"nullaaa"?而
class a{
public static void main(String [] args)
{
String str= null;
str = "aaa";
System.out.println(str);
}
}
打出来的str 是"aaa"呢?
我是想问具体的过程是如何实现的呢?谢谢
class a extends java.lang.Object{
a();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: returnpublic static void main(java.lang.String[]);
Code:
0: aconst_null
1: astore_1
2: new #2; //class java/lang/StringBuilder
5: dup
6: invokespecial #3; //Method java/lang/StringBuilder."<init>":()V
9: aload_1
10: invokevirtual #4; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: ldc #5; //String aaa
15: invokevirtual #4; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
18: invokevirtual #6; //Method java/lang/StringBuilder.toString:()Ljava/lang/String;
21: astore_1
22: getstatic #7; //Field java/lang/System.out:Ljava/io/PrintStream;
25: aload_1
26: invokevirtual #8; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
29: return
}