String s ;该语句表示只是声明了一个引用变量,但是并没有初始化引用,所以对变量s的任何操作(除了初始化赋值外) 都将引发异常.
String s=null; 表示未申请任何内存资源,即些语句表示声明了一个引用变量并初始化引用,但是该引用没有指向任何对象.但可以把它作为参数传递或其它使用,但是不能调用它作为对象的方法
String s=""; 表示申请了内存资源,但资源空间值为空。该语句表示声明并引用到一个对象,只不过这个对象为0个字节.所以既然有了对象,就可以调用对象的方法
注意:"" 也是字符串
String s = String.Empty 与 String s=""; 是完全相同的
String s;不给初始值默认为null,成员变量
String s = null;等同于String s;
如果定义为局部变量(如在方法中定义,必须给其赋初始值),String s=null;String s="";都行。
String s = ""与String s = null还是有区别的,我们平常做字符串空值判断的时候都会对两者进行判断
if("".equals(s) && s==null)