日期:2014-05-20  浏览次数:20588 次

String定义问题
在只有主函数的前提下,下面三种定义有什么区别...
1. String s;
2. String s = new String();
3. String s = null;
直接用system输出的话 第一种有错误,第二种什么都不显示,第三种是输出null
为什么呢。。。高手求解

------解决方案--------------------
第一个没有赋初值还未分配内存空间
第二种用new对象方法实例化s 已经获得了内存空间并被自动赋上空值
第三种被赋值null它有了内存空间并存储了值null
------解决方案--------------------
第一种s只是声明一个String的对象引用,但是没有初始化和分配内存,实际上跟第三种一样
第二种声明并且初始化了一个String对象的引用,引用的字符串内容为空,所以什么都不显示

之所以第一种和第三种输出不一样,可能是把声明为null的字符串就输出为null吧