日期:2014-05-20  浏览次数:20610 次

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

------解决方案--------------------
null是指username对象不存在即未分配内存;为“”时对象已创建但无数据(只有\0)
------解决方案--------------------
if(username==null||username.equal("")){输入为空;}
------解决方案--------------------
为了保险最好都写
------解决方案--------------------
字符串String要是用比较的话,建议使用equals比较,这样比较的是变量在内存空间的值,而“==”比较的是指向内存空间的地址,所以不能用“==”来比较。还有就是理解 null和“”的含义,null的意思是为空,就是说没有分配内存空间,而 “”的意思是说分配了内存空间,但是没有赋值。
------解决方案--------------------
String str = "";表示内存中存在str,只是这个str没有值。。
String str = null;表示内存中根本就不存在str,更不用说有值了。。


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

------解决方案--------------------
我觉得最好都写吧,因为我在做网站项目时遇到过这个问题,在跟数据库交互时,一段时间之后,里面可能既有null又有“”,所以为了不在以后给自己添加麻烦,我还是建议都写上。
------解决方案--------------------
可以在页面先使用输入验证
------解决方案--------------------
"" 里面有东西 但是内容是空的 null里面木有东西
------解决方案--------------------
说白了 一个是对象还没有创建,不存在。 而“”是对象已经有了且在堆内存中有地址值了但是值是空的