站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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没有


↑返回目录
前一篇: 在纯DOS系统下可以学习JAVA吗?
后一篇: 帮忙Thinking in java第四章里一段示例代码