java字符串为空的问题

String str;
①““.equals(str)
②”null“.equals(str)
③str==null
①②③有什么区别?

①““.equals(str)这个是获取到str的值,和""比较,纯粹的值得比较 如果Str 是“aa”,那么自然不等于
②”null“.equals(str)就是用一个值为null的字符串和str 的值做比较!

③str==null,str 本身引用对象是否是null ,str没有初始化时那么就是一个null 对象
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-12
如果要比喻,那么“”就是一个空杯子,“null”就是杯子中装了内容为"null"的字符串(带引号的null不是真的null),真的null就是啥都没有,杯子都不存在!注意"null".equals(str)和null.equals(str)是不一样的额,后者是错误的。
第2个回答  2013-12-12
".equals"是两个字符串比较内容是否相同的方法,返回类型是boolean。所以一般我们会用方法1判断字符串是否为空,而方法2直接就是错误的。"=="是用于比较内存地址,用与判断字符串是否为空一般用str.size() == 0,方法3也不合适。
第3个回答  2013-12-12
3是对的,1,2是错的,String类型的初始化默认值为null,所以1是错的,“null"的实际意思是,null字符串,所以2也是错的,
第4个回答  2013-12-12
1.str已经被初始化了,字符串的值是"",即空字符串。
2.解释为str="null";即str的长度为4。
3.str未被初始化,不占用内存空间。
相似回答