+ -
当前位置:首页 → 问答吧 → 字符串String对象为" "和null有什么区别

字符串String对象为" "和null有什么区别

时间:2011-10-29

来源:互联网

我从页面中得到一个username属性,想判定下是否有值 我是写username==null或者username.equal("")呢?""和null二者有什么区别

作者: zzu_sun   发布时间: 2011-10-29

null是指username对象不存在即未分配内存;为“”时对象已创建但无数据(只有\0)

作者: chiyuxing   发布时间: 2011-10-29

那我在逻辑层判断的时候有“”还是null呢

作者: zzu_sun   发布时间: 2011-10-29

都用,用||

作者: chiyuxing   发布时间: 2011-10-29

if(username==null||username.equal("")){输入为空;}

作者: chiyuxing   发布时间: 2011-10-29

这个判断写起来就长了,我还有password等等,我用debug的时候看到的是"",需要null吗

作者: zzu_sun   发布时间: 2011-10-29

==比较的是变量 在内存中的起始地址是否相同,
equals比较的是内容是否相同
应该直接比较""就ok了

作者: crlystaldong   发布时间: 2011-10-29

为了保险最好都写

作者: qq547401556   发布时间: 2011-10-29

字符串String要是用比较的话,建议使用equals比较,这样比较的是变量在内存空间的值,而“==”比较的是指向内存空间的地址,所以不能用“==”来比较。还有就是理解 null和“”的含义,null的意思是为空,就是说没有分配内存空间,而 “”的意思是说分配了内存空间,但是没有赋值。

作者: biaoscomputer   发布时间: 2011-10-29

引用 8 楼 biaoscomputer 的回复:
字符串String要是用比较的话,建议使用equals比较,这样比较的是变量在内存空间的值,而“==”比较的是指向内存空间的地址,所以不能用“==”来比较。还有就是理解 null和“”的含义,null的意思是为空,就是说没有分配内存空间,而 “”的意思是说分配了内存空间,但是没有赋值。

意思是我equals(“”)下就行了吗,如果这样判断,没值的时候还会不会报空指针异常

作者: zzu_sun   发布时间: 2011-10-29