课程
/移动开发
/Android
/Android攻城狮的第一门课(入门篇)
str!=null&&!str.equals("")怎么理解,不都是表示不为空的意思吗
2017-04-17
源自:Android攻城狮的第一门课(入门篇) 21-6
正在回答
str!=null :str引用的值不为null, 也就是说实际上没有引用一个String对象
!str.equals(""): str引用的对象是"",也就是空字符串
简单画个图
在C/C++里, str其实是一个指针, null表示空指针, str==null表示该字符串指针没有指向任何一个字符串. ""表示是空字符串, 空字符串也是字符串, 也在内存中占有位置, str.equals("")表示这个str指向了一个字符串, 且该字符串的内容是一个空字符串.
可以通过打印str的内存地址就可以看出null和""是不同的;
java也是类似的.
而且在C/C++中, 如果不先判断str不为空就直接使用str的方法, 是会出错的, 因为str还没有被初始化为String类的实例;
举报
想快速掌握Android应用开发基础,选择学习这门课程就对了。