String str1;
System.out.println(str1); 这样写必须给str初始化为null;
而String str2=new String();
System.out.println(str2); 这样写结果是什么也没有
请教一下为什么???
1.String str1;
System.out.println(str1);
这样写会报错的,因为str1未定义,必须进行初始化。
2.String str2=new String();
System.out.println(str2); 这样写结果是什么也没有
你在内存里创建了一个str2,没有赋值,当然结果什么都没有。
第一步:String str1; 只是在栈中创建了一个引用地址,在堆中没有指向的对象。所以str1 不是对象。System.out.println(str1); 就不成立,因为println(Object o);
第二步:String str2=new String(); 很明显 创建了一个str2的空对象,str2为地址,对象为空,有地址有真相。所以str2是对象,可以被println();