Java中定义变量时赋值为null和赋值为“”有什么区别?

null究竟是指什么,怎么理解

两者的区别是是否为该变量开辟内存空间,null只是没有为该变量申请内存空间,所以只是对该变量进行了声明,因为其在内存中尚不存在所以无法直接调用,需要进行初始化工作之后才能调用

public class TestObject
{
public static void main(String args[]){
String s1 = "";
String s2 = null;
System.out.println(s1.length());//正常调用
//System.out.println(s2.length());//s2尚不存在,空指针错
s2 = "java";
System.out.println(s2.length());//初始化完成,正常调用
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-27
null是什么都没赋,而""是有值的,比如:
String s1 = null;
String s2 = "";
s1.length(); //报错,空引用
s2.length(); //返回长度为0
由于好长时间不用JAVA,都忘的差不多了,上面写的代码可能会有问题,但不影响你理解null和""。
记着null是什么都没有,调用此类变量的非静态成员函数会报空引用错误就可以了。
第2个回答  2011-09-30
null空引用 就是对象声明没有初始化
“”空字符串 就是没有内容的字符串
相似回答