黑马程序员技术交流社区

标题: null==str 和str==null区别 [打印本页]

作者: 肖发腾    时间: 2012-3-29 21:07
标题: null==str 和str==null区别
经常见到这样的写法,null==str ,那么它和str==null区别是什么呢?
作者: newlaw2013    时间: 2012-3-29 21:32
其实并没有什么区别,只是一种写法而已,实际的编程中只是使用对象的引用equals()方法进行比较的时候有区别,例如:
String str = null;
if(str.equals("abc")){...}//写法1
if("abc".equals(str)){...}//写法2
以上写法1当str为null的时候会报系统异常NullPointerException,而写法2则可以避免此异常的发生,是一个较好的书写形式。
作者: 李节起    时间: 2012-3-29 21:51
str==null,null==str性能差不多,几乎相等;str!=null,null!=str性能差距有些大,str!=null有优于null!=str。 即使把上面str换成一个非null字符串结果也很相似,与str为null时各项对比不超过5ms/10ms.
所以个人建议不管从程序可读性还是性能上来说,推荐使用str!=null,str==null这种形式。

[url]链接[/url]
作者: 姚伟涛    时间: 2012-3-29 22:10
package cn.text;

public class Test {

        /**
         * @param args
         */
        public static void main(String[] args) {
                String str = null;
                System.out.println(null==str);
                System.out.println(str==null);

        }

}
结果
true
true
程序规范书写因该是str==null
作者: 肖发腾    时间: 2012-3-30 08:14
哦,明白了,谢谢{:soso_e100:}
作者: 强文何    时间: 2012-3-30 22:03
怎么判断性能的啊 我想了解原理




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2