String str1;和String str2=new String();

来源:互联网 发布:linux 创建home目录 编辑:程序博客网 时间:2024/06/05 21:04

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();

原地址:http://bbs.csdn.net/topics/390396859

阅读全文
0 0
原创粉丝点击