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

解决方案 »

  1.   

    第一个没有赋初值还未分配内存空间
    第二种用new对象方法实例化s 已经获得了内存空间并被自动赋上空值
    第三种被赋值null它有了内存空间并存储了值null
      

  2.   

    第一种s只是声明一个String的对象引用,但是没有初始化和分配内存,实际上跟第三种一样
    第二种声明并且初始化了一个String对象的引用,引用的字符串内容为空,所以什么都不显示之所以第一种和第三种输出不一样,可能是把声明为null的字符串就输出为null吧
      

  3.   

    第一个只是创建一个是string variable,(可能我说的不对)  第2个 让s 是一个新的string object 但是空的  第3个可能 设他的内容 是null。可能我说的 不太对 , 自己最好 买些书来看会比较好