黑马程序员技术交流社区
标题:
null==str 和str==null区别
[打印本页]
作者:
宋红旺
时间:
2011-9-17 08:51
标题:
null==str 和str==null区别
String str = "abc";
if(str==null) 和 if(null==str) 这两个有什么区别啊??
作者:
匿名
时间:
2011-9-17 08:53
标题:
回复 楼主 的帖子
如果是用==的话,这两个基本上没有什么区别。
作者:
丁朋伟
时间:
2011-9-17 08:54
如果在运行程序时str为空了
那么str==null 就会引发空指针异常
而(null==str)就不会引发空指针异常
在编译阶段如果笔下误写成了str=null不会提示编译错误
而null==str会提示错误
一般建议使用null==str
如果判断字符串时最好不要用==,要用equals()
在判断内存中的字节码时要用 ==
[
本帖最后由 丁朋伟 于 2011-09-17 08:57 编辑
]
作者:
匿名
时间:
2011-9-17 10:30
标题:
回复 藤椅 的帖子
谢谢分享,学习了!
作者:
匿名
时间:
2011-9-20 23:02
str== null ,如果str为null,就会发生NullPointException异常,而null==str可以防止程序发生NullPointException,所以在程序中推荐使用null==str
作者:
匿名
时间:
2011-9-22 16:05
请勿结贴,请做测试,str==null,null==str是没有区别的
public static void main(String[] args) {
String str=null;
if(str==null){
System.out.println("str is null");
}else{
System.out.println("str is not null");
}
}
我们讲的避免空指针一场,是用equals方法是,须将if(str!=null&&str.equals(str2))
须将str!=null放在判断前面避免空指针,这就是所谓的短路
作者:
匿名
时间:
2011-9-23 17:40
根据张磊同学的代码测试 没有发现区别~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2