A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 肖发腾 中级黑马   /  2012-3-29 21:07  /  3221 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

经常见到这样的写法,null==str ,那么它和str==null区别是什么呢?

5 个回复

倒序浏览
其实并没有什么区别,只是一种写法而已,实际的编程中只是使用对象的引用equals()方法进行比较的时候有区别,例如:
String str = null;
if(str.equals("abc")){...}//写法1
if("abc".equals(str)){...}//写法2
以上写法1当str为null的时候会报系统异常NullPointerException,而写法2则可以避免此异常的发生,是一个较好的书写形式。
回复 使用道具 举报
str==null,null==str性能差不多,几乎相等;str!=null,null!=str性能差距有些大,str!=null有优于null!=str。 即使把上面str换成一个非null字符串结果也很相似,与str为null时各项对比不超过5ms/10ms.
所以个人建议不管从程序可读性还是性能上来说,推荐使用str!=null,str==null这种形式。

[url]链接[/url]
回复 使用道具 举报
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
回复 使用道具 举报
哦,明白了,谢谢{:soso_e100:}
回复 使用道具 举报
怎么判断性能的啊 我想了解原理
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马