2 c1040224140 c1040224140 于 2015.05.26 18:38 提问

null == a 和 a == null的区别

String a = "a"
请问null == a 和 a == null 的区别

10个回答

showbo
showbo   Ds   Rxr 2015.05.26 18:42
已采纳

没什么区别
只是为了 防止将 == 错写成 =的一种手段
NULL=a 会报错的。
a=NULL 不会报错。
这样,当我们错写的时候,就能很好的得到提示了

wx18910611809
wx18910611809   2015.05.26 18:55

防止将 == 错写成 =的一种

caozhy
caozhy   Ds   Rxr 2015.05.26 18:56

没有区别
==具有三大性质
自反性 a==a永远成立
传递性 a==b b==c必然a==c
对称性 a==b,必然b==a

jianzhi6
jianzhi6   2015.05.26 18:57

其实没区别,硬要说有那就是前者的主体是null,判断null是否等于a,后者主体是a,判断a是否等于null

c1040224140
c1040224140   2015.05.26 19:05

原来如此,谢谢,终于明白了。
在网上找到说是NullPointException,后来自己测了发现不对啊,a.equals("")和"".equals(a)这个才是避免空指针
谢谢大哥!!!

guwei4037
guwei4037   Ds   Rxr 2015.05.26 19:05

效果是一样的,只不过null == a这种写法编译器会检查,防止错写成null = a,实际上这样编译不通过,会有错误提示。

DZL_ACE
DZL_ACE   2015.05.26 19:53

通俗点就是判断的主体不同,但实际上功能都一样

qq_27361099
qq_27361099   2015.05.26 22:42

可以防止将==写成=的错误发生
: 如果null写在前面,null=a编译不通过
: a=null确可以通过,但是错误的

sunzili00
sunzili00   2015.05.27 08:52

没有什么区别,验证相等返回布尔值的时候前后是等价的~~

u012271952
u012271952   2015.05.27 10:33

程序员一般都被要求这样写,因为有些人马虎大意,有时候会将==写错,写成=。

Csdn user default icon
上传中...
上传图片
插入图片