2 c1040224140 c1040224140 于 2015.05.26 18:38 提问

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

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

11个回答

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

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

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java的String=a; a==null和a.equals(null)这两个判断有什么区别
转载地址:http://zhidao.baidu.com/link?url=TiUvedxlF4YqktZl8shEigzYnSYA4hrixykEggfs7JbmSbl7bACBcpt2HpRiwA9c9GIv-62b-TAtqVQNkZWFbr9ldGNCYU65LqWgoAIygkm 首先明确的一点,String的equals方法默认是重写了Object类的方法,具体是实现是 public
关于null != a 与 a != null 的区别
null != a 要比a != null 好在于避免由于编码失误造成把a赋值为null 只是编码风格上的区别,效率是一样的; 这个与equals是类似的。比如 String str = ..; if(str.equals("admin")) 这样使用的话,一旦str是null将导致空指针异常,所以我们推荐使用 if("admin".equals(str)) 这样就没有问题了。
a.length==0、a==null、a == ""、a.equals("") 的区别
a == null  没在堆里开辟内存,即相当于没有new a == ""    new了一个String,但内容为空,长度为零 a.length() == 0  同上 a.equals("")   同上
String a; String a=null; Sting a="" ;String a="b";区别
1. String a; 只是定义了一个String类型变量a,并没有给它赋初值,在Java中,默认在使用一个变量的时候必须赋予它初值(降低风险) 2.  String a=null; 只是定义了一个句柄,也就是说你有了个引用,但是这个引用未指向任何内存空间      注意:string.trim()就会抛出为空的exception,因为null是一个对象,根本不是一个字符串。
Java工具类
public static boolean isNull(Object a) { String b = toString(a); return isNull(b); } public static boolean isNull(String a) { a = ("" + a).trim(); if (a == null || "".equals(a) || "null".equals(a) || "NULL".equals(a)) { return true; } else { return false; } } public static boolean isNull(Integer a) { if (a == null) { return true; } else { return false; } } public static boolean isNull(Long a) { if (a == null) { return true; } else { return false; } }
String s;和String s=null;和String s="a";有什么区别?
String s;和String s=null;和String s="a";有什么区别?    针对这三种情况,使用out.println(s);的时候,第一个会出现异常,第二个会输出null.第三个则会输出a.    这是为什么呢?这三句声明语句,各自作了什么呢? 答: 第一个只是定义了一个String类型变量s,并没有给它赋初值,在Java中,默认在使用一个变量的时候必须赋予它
关于ArrayList.clear()与=null以及new ArrayList<E>()
ArrayList是常用到的JCF类,用来保存类型相同的一组对象,并通过下标来快速访问指定对象。今天讨论的是当我们使用完ArrayList后应该选择怎样合适的处理方式。这里现在有三种方式如下:1. 使用ArrayList的对象方法clear()ArrayList&amp;lt;String&amp;gt; list = new ArrayList&amp;lt;String&amp;gt;(); list.add(&quot;0&quot;); l...
select NULL + '+' + NULL as a
分别用ADO/BDE/DBExpress查询"select NULL + + + NULL as a"结果是:ADO/DBExpress的结果都为NULL而BDE的结果是"+"   AnsiString ansiSQL = "select NULL + + + NULL as a"; //ADO ADOQuery1->SQL->Clear(); ADOQuery1-
int? a=null;
int? a=null;是可以的!还有string o;int i=2;o=i;这样是不行的,装箱与拆只是针对OBJCT  
on a null object reference 问题的解决办法
准备做下拉刷新的功能的时候,自定义了一个ExpandableListView控件,突然报了一个空对象on a null object reference 的错误,找了很多资料都不能解决问题。 我又跑到朋友那里问,六月提示了我invoke问题。感谢六月,有你们我会进步飞快的。 最后在一篇文章中得到了启示,感谢作者pengmq在http://www.cnblogs.com/Pota