当前页面: 开发资料首页 → J2SE 专题 → 对Null和""的疑惑?
对Null和""的疑惑?
摘要: 对Null和""的疑惑?
public static void main(String[] args)
{
String s1 = "";
String s2 = null;
System.out.println(s1==s2);//false
}
为什么?""与Null有甚区别?
null只是声明,""是初始化为空
null是说明没有值(或者说没有给这个对象分配存储空间呢)。而""说明是有值的(也就说它已经被分配了地址空间的。只不过我们说的给其初始化了一个空的字符串),只不过这个值是""。
用跟造房子举例(不一定非常恰当哦),null就像我们准备好了材料计划造一所房子,但还没有造,而""是房子已经造完成了,只是里边没有住人。
null 什么都没有,连空间都没有,就是宇宙大爆炸前的样子,什么都没有。
"" 就是有空间,但空间里什么都没有,比如真空,空抽屉,空钱包。null就是连空着的抽屉、钱包都没有。
""说明该字符串对象已经有值并且是空的.
null说明该字符串对象值存在为空或者不知道其结果...
如果为null,说明对象在内存中并未分配存储空间,
但为""的话,说明已经分配了存储空间,但值为空而已。
""就相当于有一个 空 格 !!!!
谢谢楼上的兄弟们,,,
空间与地址的问题
JAVA中的每个已初始化的引用都指向一个地址,null也是一个地址,但没有与这个地址相对应的内存空间,是一个空头地址。而""是一个真正的String对象,支持定义在String类中的所有操作,把一个变量赋值为"",意味着这个变量指向了一个真正的String对象,而不是指向一个空头地址。
""和空格不一样!
The Null keyword is used as a Variant subtype. It indicates that a variable contains no valid data
String s1 = ""; 引用s1已经被引用到一个具体的内存地址:""存储的地址
String s2 = null; 引用s2没有