为了账号安全,请及时绑定邮箱和手机立即绑定

str!=null&&!str.equals("") 怎么理解

str!=null&&!str.equals("")怎么理解,不都是表示不为空的意思吗

正在回答

2 回答

str!=null :str引用的值不为null, 也就是说实际上没有引用一个String对象

!str.equals(""): str引用的对象是"",也就是空字符串

简单画个图

http://img1.sycdn.imooc.com//5973f28200013c0604790326.jpg


0 回复 有任何疑惑可以回复我~

在C/C++里, str其实是一个指针, null表示空指针, str==null表示该字符串指针没有指向任何一个字符串.  ""表示是空字符串, 空字符串也是字符串, 也在内存中占有位置, str.equals("")表示这个str指向了一个字符串, 且该字符串的内容是一个空字符串.  

可以通过打印str的内存地址就可以看出null和""是不同的;

java也是类似的.

而且在C/C++中, 如果不先判断str不为空就直接使用str的方法, 是会出错的, 因为str还没有被初始化为String类的实例;

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第一门课(入门篇)
  • 参与学习       312585    人
  • 解答问题       4633    个

想快速掌握Android应用开发基础,选择学习这门课程就对了。

进入课程

str!=null&&!str.equals("") 怎么理解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信