java中变量不等于null跟null不等于变量,如a !=null与null!=a有什么区别

如题所述

这个没区别。我想你想问的应该是有个a对象。a.equals("");和"".equals(a);这个是有区别的。前者不能保证a不为null,可能回报空指针异常,后者的""肯定不是null,绝对不会有这种顾虑。希望可以采纳!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-24
用“!=”可能看不出区别。但是我们可以看看a==null与null==a。这个时候如果你不小心把a==null写成了a=null,那么就有可能得到莫名其妙的结果。但null==a写成null=a则编译器是会报错的。
类似的还有a.equals("")跟"".equals(a)。
第2个回答  推荐于2017-11-25
不知道你是不是想问这个,我给你个例子:
String a = null;
System.out.println(a.equals("Hello"));
这个语句在编译的时候是不会报错的,但是在运行的时候会报空指针异常。
但是改成这样
String a = null;
System.out.println("Hello".equals(a));
运行后就会正确的显示false,因为可以先取到"Hello",然后与a做比较,a是null不相等,就是false。本回答被提问者和网友采纳
第3个回答  2013-01-21
兄弟,哥以前跟你一样。老纠结于这样牛角尖的问题。那些人的回答也是都可以了。但自己就是要找个不同。这大概是人都有个唯一性的要求吧。你好好看一下。程序的内存分配和运算顺序。就明白了。不是我们的问题无聊,而是我们真的没有掌握这个知识。思想的发散方向多维的,一条路想不通,就换个路。就像流水遇到石头改变线路一样。走不通的时候或困惑的时候,首先想一想是不是自己思路的问题。既然能提出这个问题,那这个问题本身没有问题。是不是我们思路的问题呢。
回到这个题上吧,!=是非操作吧,那这个语句其实是判断语句是左边是a 右边是null 和左边是null右边是a 其实他就是说a非null != 要看成一个个体 就像==一样判定两边是否相等 不相等是false相等就是true 这就是双目操作符 结合顺序从左向右。单目是从右向左的。
第4个回答  2013-01-21
没区别,,只是一种习惯吧,就像驼峰命名法
这中习惯是很好的,
l 跟 !很像,
可以有很多变量,但是null就一个,这样阅读代码很方面
相似回答