null != a 与 a != null,第一个效率高,为什么

时间:2022-02-10 19:56:49
今天搞代码的时候,写了N遍的代码,突然想到一个问题。
只听说,
null != a效率要高些...
但不知道为什么,
哪位大牛给我讲讲哈...

54 个解决方案

#1


听谁说的??啊

让他出来讲讲吧。

#2


应该都是一样的吧...

#3


就算有区别,也不必去追究

#4


还是有必要了解下的...
就是错了,
也得纠正自己错误的认识啊...

#5


那个说的拖出去斩了

#6


学习!!

#7


引用 5 楼 chenliuyang 的回复:
那个说的拖出去斩了


狠了点。

#8


说第一个效率高,不是说它执行的时间或者消耗资源上高,而是说它具有防错功效。

#9


只是编码风格上的区别,效率是一样的;
null !=  a 要比a != null 好在于避免由于编码失误造成把a赋值为null

#10


引用 9 楼 lee_09 的回复:
只是编码风格上的区别,效率是一样的;
null !=  a 要比a != null 好在于避免由于编码失误造成把a赋值为null

java不可能出现这种情况。

#11


自己习惯哪个就哪个

#12


朝三暮四的典故
a != null 先打一个字母,再打四个字母,觉得很累
null != a 先打四个字母,再打一个字母,觉得很爽

#13


坦白说我一向不喜欢LZ的那种写法 
a != null 的意思很明确 a对象不能为null 而且很适合从左往右看的人(也就是普通人去理解)
null != a 怎么解释?我不管什么效率问题 这种写法本身就恶心 就算有效率我也不会这么写

#14


引用 13 楼 bearkin 的回复:
坦白说我一向不喜欢LZ的那种写法
a != null 的意思很明确 a对象不能为null 而且很适合从左往右看的人(也就是普通人去理解)
null != a 怎么解释?我不管什么效率问题 这种写法本身就恶心 就算有效率我也不会这么写


null != a  :良好的习惯,是为了确保 (a == 200)不至于低级的失误写成(a = 200)...

#15


引用 14 楼 lvbang_lzt 的回复:
引用 13 楼 bearkin 的回复:
坦白说我一向不喜欢LZ的那种写法
a != null 的意思很明确 a对象不能为null 而且很适合从左往右看的人(也就是普通人去理解)
null != a 怎么解释?我不管什么效率问题 这种写法本身就恶心 就算有效率我也不会这么写




null != a  :良好的习惯,是为了确保 (a == 200)不至于低级的失误写成(a = 200)...


这是JAVA!不是JS!

#16


引用 12 楼 daisycool 的回复:
朝三暮四的典故
 a != null 先打一个字母,再打四个字母,觉得很累
 null != a 先打四个字母,再打一个字母,觉得很爽


牛人真多

#17


引用 15 楼 bearkin 的回复:
引用 14 楼 lvbang_lzt 的回复:
引用 13 楼 bearkin 的回复:
坦白说我一向不喜欢LZ的那种写法
a != null 的意思很明确 a对象不能为null 而且很适合从左往右看的人(也就是普通人去理解)
null != a 怎么解释?我不管什么效率问题 这种写法本身就恶心 就算有效率我也不会这么写


null != a  :良好的习惯,是为了确保 (a == 200)不至于低级的失误写成(a = 200)...


这是JAVA!不是JS!

如果在判断中呢,并不是所有的人都用开发平台的,也有牛人直接使用记事本、TextPad之类的,毕竟太过依赖那些平台对成长不是很好..
if(a == 200){
}
if(a = 200){

}
更何况:
boolean b = true;
if(b = true){//这种情况Eclipse是不提示错误的

}

#18


谁说那样效率高???????????

#19


引用 7 楼 bigbug9002 的回复:
引用 5 楼 chenliuyang 的回复:
那个说的拖出去斩了


狠了点。

还是枪毙五分钟吧

#20


引用 17 楼 lvbang_lzt 的回复:
引用 15 楼 bearkin 的回复:
引用 14 楼 lvbang_lzt 的回复:
引用 13 楼 bearkin 的回复:
坦白说我一向不喜欢LZ的那种写法
a != null 的意思很明确 a对象不能为null 而且很适合从左往右看的人(也就是普通人去理解)
null != a 怎么解释?我不管什么效率问题 这种写法本身就恶心 就算有效率我也不会这么写


null != a  :良好的习惯,是为了确保 (a == 200)不至于低级的失误写成(a = 200)...


这是JAVA!不是JS!

如果在判断中呢,并不是所有的人都用开发平台的,也有牛人直接使用记事本、TextPad之类的,毕竟太过依赖那些平台对成长不是很好..
if(a == 200){
}
if(a = 200){

}
更何况:
boolean b = true;
if(b = true){//这种情况Eclipse是不提示错误的

}

第一 如果你那么写 编译的时候会提示错误的 无论是使用IDE或者手动编译

第二 既然是boolean值 还搞什么 == true == false? 他本身就是boolean啊! 同意19L观点 另外 我建议改成手雷6毛钱一个 先扔一百的

#21


if(b = true){//这种情况Eclipse是不提示错误的

}
显示时会报错啊
null != a,个人习惯写法就像"".equals(a)一样

#22


引用 12 楼 daisycool 的回复:
朝三暮四的典故
a != null 先打一个字母,再打四个字母,觉得很累
null != a 先打四个字母,再打一个字母,觉得很爽

   这个有意思.....O(∩_∩)O哈哈~
     不过最后还是打一样的字母数,╮(╯▽╰)╭
        心态决定一切...........
    总结:楼主想怎么用怎么用。。。。。。。。。。。

#23


这完成是个人的编码风格所影响的.不过我个人建议使用
if(null!=a&&!"".equals(a)){
   //code 
}

#24


引用 12 楼 daisycool 的回复:
朝三暮四的典故
a != null 先打一个字母,再打四个字母,觉得很累
null != a 先打四个字母,再打一个字母,觉得很爽


佩服!

#25


没啥区别,java源码里边看到现在都是a!=null这种写法的
跟着大师们学没错 null != a 与 a != null,第一个效率高,为什么

#26


编码规范问题
  null! = a  
  "".equals(a)
好习惯 

#27


引用 26 楼 bassbio 的回复:
编码规范问题
  null! = a 
  "".equals(a)
好习惯
编程规范是什么?

#28


我喜欢i!=null
也喜欢"".eques(i)
这样能防止错误

#29


引用 28 楼 lxd520123 的回复:
我喜欢i!=null
 也喜欢"".eques(i)
 这样能防止错误


同上,至少我绝对不会写成 null != i 的。

#30


公司编程规范怎么要求就怎么写

#31


后者效率高

#32


支持5楼。

#33


应该差不多吧 不知道

#34


之所以把NULL写在前面。是因为赋错值。  至于效率嘛,应该是一样的。

#35


脍炙人口的问题

#36


茴香豆的茴字有几种写法?

#37


茴香豆的茴字有几种写法?

#38


引用 29 楼 bao110908 的回复:
引用 28 楼 lxd520123 的回复:
 我喜欢i!=null
  也喜欢"".eques(i)
  这样能防止错误

 同上,至少我绝对不会写成 null != i 的。


效率是一样的,null!=a 这样写可避免a为null的时候出现空指针错误。没别的意思。

#39


null != i 看起来别扭哈。。

一般对象比较。常见的是String的比较。。
String的比较一般是。
例如
String a = 。。。。。

"abc".equals(a)

一般这样写。。防止a 是 null会报错。。

#40


引用 21 楼 xiaozhangnima 的回复:
if(b = true){//这种情况Eclipse是不提示错误的

}
显示时会报错啊
null != a,个人习惯写法就像"".equals(a)一样


我也是这么写的,一般情况如String a = "";
判断是我会写:
if(null!=a && !"".equals(a)){
   ....
}

#41


null是个固定值,但是a应该是个变量。
将固定值放在前面,好像有时候能够减少比较次数。

#42


只是防止写错罢了吧

#43


还是习惯的写法比较好!

#44


没有效率问题。

#45


习惯问题。

#46


引用 10 楼 zangxt 的回复:
引用 9 楼 lee_09 的回复:
只是编码风格上的区别,效率是一样的;
null !=  a 要比a != null 好在于避免由于编码失误造成把a赋值为null

java不可能出现这种情况。


完全有可能出现这种情况:当然如果显示申明是boolean型的时候就不存在,但有时如
Object ob =  (a = null); 就出现了吧

#47



#48


曾经体验过两种不同的写法,同意38楼的看法。试过才知道那样可以避免变量为null时的空指针错误

#49


這隻是個人習慣啦
一般來說都會寫成這樣 a != null
如果是判斷字符串的話,這樣寫好點:!"".equals(a),
可以避免空点异常

#50


肯定第一个效率高一些 现在的机器配置都高了,用那个都差不多

#1


听谁说的??啊

让他出来讲讲吧。

#2


应该都是一样的吧...

#3


就算有区别,也不必去追究

#4


还是有必要了解下的...
就是错了,
也得纠正自己错误的认识啊...

#5


那个说的拖出去斩了

#6


学习!!

#7


引用 5 楼 chenliuyang 的回复:
那个说的拖出去斩了


狠了点。

#8


说第一个效率高,不是说它执行的时间或者消耗资源上高,而是说它具有防错功效。

#9


只是编码风格上的区别,效率是一样的;
null !=  a 要比a != null 好在于避免由于编码失误造成把a赋值为null

#10


引用 9 楼 lee_09 的回复:
只是编码风格上的区别,效率是一样的;
null !=  a 要比a != null 好在于避免由于编码失误造成把a赋值为null

java不可能出现这种情况。

#11


自己习惯哪个就哪个

#12


朝三暮四的典故
a != null 先打一个字母,再打四个字母,觉得很累
null != a 先打四个字母,再打一个字母,觉得很爽

#13


坦白说我一向不喜欢LZ的那种写法 
a != null 的意思很明确 a对象不能为null 而且很适合从左往右看的人(也就是普通人去理解)
null != a 怎么解释?我不管什么效率问题 这种写法本身就恶心 就算有效率我也不会这么写

#14


引用 13 楼 bearkin 的回复:
坦白说我一向不喜欢LZ的那种写法
a != null 的意思很明确 a对象不能为null 而且很适合从左往右看的人(也就是普通人去理解)
null != a 怎么解释?我不管什么效率问题 这种写法本身就恶心 就算有效率我也不会这么写


null != a  :良好的习惯,是为了确保 (a == 200)不至于低级的失误写成(a = 200)...

#15


引用 14 楼 lvbang_lzt 的回复:
引用 13 楼 bearkin 的回复:
坦白说我一向不喜欢LZ的那种写法
a != null 的意思很明确 a对象不能为null 而且很适合从左往右看的人(也就是普通人去理解)
null != a 怎么解释?我不管什么效率问题 这种写法本身就恶心 就算有效率我也不会这么写




null != a  :良好的习惯,是为了确保 (a == 200)不至于低级的失误写成(a = 200)...


这是JAVA!不是JS!

#16


引用 12 楼 daisycool 的回复:
朝三暮四的典故
 a != null 先打一个字母,再打四个字母,觉得很累
 null != a 先打四个字母,再打一个字母,觉得很爽


牛人真多

#17


引用 15 楼 bearkin 的回复:
引用 14 楼 lvbang_lzt 的回复:
引用 13 楼 bearkin 的回复:
坦白说我一向不喜欢LZ的那种写法
a != null 的意思很明确 a对象不能为null 而且很适合从左往右看的人(也就是普通人去理解)
null != a 怎么解释?我不管什么效率问题 这种写法本身就恶心 就算有效率我也不会这么写


null != a  :良好的习惯,是为了确保 (a == 200)不至于低级的失误写成(a = 200)...


这是JAVA!不是JS!

如果在判断中呢,并不是所有的人都用开发平台的,也有牛人直接使用记事本、TextPad之类的,毕竟太过依赖那些平台对成长不是很好..
if(a == 200){
}
if(a = 200){

}
更何况:
boolean b = true;
if(b = true){//这种情况Eclipse是不提示错误的

}

#18


谁说那样效率高???????????

#19


引用 7 楼 bigbug9002 的回复:
引用 5 楼 chenliuyang 的回复:
那个说的拖出去斩了


狠了点。

还是枪毙五分钟吧

#20


引用 17 楼 lvbang_lzt 的回复:
引用 15 楼 bearkin 的回复:
引用 14 楼 lvbang_lzt 的回复:
引用 13 楼 bearkin 的回复:
坦白说我一向不喜欢LZ的那种写法
a != null 的意思很明确 a对象不能为null 而且很适合从左往右看的人(也就是普通人去理解)
null != a 怎么解释?我不管什么效率问题 这种写法本身就恶心 就算有效率我也不会这么写


null != a  :良好的习惯,是为了确保 (a == 200)不至于低级的失误写成(a = 200)...


这是JAVA!不是JS!

如果在判断中呢,并不是所有的人都用开发平台的,也有牛人直接使用记事本、TextPad之类的,毕竟太过依赖那些平台对成长不是很好..
if(a == 200){
}
if(a = 200){

}
更何况:
boolean b = true;
if(b = true){//这种情况Eclipse是不提示错误的

}

第一 如果你那么写 编译的时候会提示错误的 无论是使用IDE或者手动编译

第二 既然是boolean值 还搞什么 == true == false? 他本身就是boolean啊! 同意19L观点 另外 我建议改成手雷6毛钱一个 先扔一百的

#21


if(b = true){//这种情况Eclipse是不提示错误的

}
显示时会报错啊
null != a,个人习惯写法就像"".equals(a)一样

#22


引用 12 楼 daisycool 的回复:
朝三暮四的典故
a != null 先打一个字母,再打四个字母,觉得很累
null != a 先打四个字母,再打一个字母,觉得很爽

   这个有意思.....O(∩_∩)O哈哈~
     不过最后还是打一样的字母数,╮(╯▽╰)╭
        心态决定一切...........
    总结:楼主想怎么用怎么用。。。。。。。。。。。

#23


这完成是个人的编码风格所影响的.不过我个人建议使用
if(null!=a&&!"".equals(a)){
   //code 
}

#24


引用 12 楼 daisycool 的回复:
朝三暮四的典故
a != null 先打一个字母,再打四个字母,觉得很累
null != a 先打四个字母,再打一个字母,觉得很爽


佩服!

#25


没啥区别,java源码里边看到现在都是a!=null这种写法的
跟着大师们学没错 null != a 与 a != null,第一个效率高,为什么

#26


编码规范问题
  null! = a  
  "".equals(a)
好习惯 

#27


引用 26 楼 bassbio 的回复:
编码规范问题
  null! = a 
  "".equals(a)
好习惯
编程规范是什么?

#28


我喜欢i!=null
也喜欢"".eques(i)
这样能防止错误

#29


引用 28 楼 lxd520123 的回复:
我喜欢i!=null
 也喜欢"".eques(i)
 这样能防止错误


同上,至少我绝对不会写成 null != i 的。

#30


公司编程规范怎么要求就怎么写

#31


后者效率高

#32


支持5楼。

#33


应该差不多吧 不知道

#34


之所以把NULL写在前面。是因为赋错值。  至于效率嘛,应该是一样的。

#35


脍炙人口的问题

#36


茴香豆的茴字有几种写法?

#37


茴香豆的茴字有几种写法?

#38


引用 29 楼 bao110908 的回复:
引用 28 楼 lxd520123 的回复:
 我喜欢i!=null
  也喜欢"".eques(i)
  这样能防止错误

 同上,至少我绝对不会写成 null != i 的。


效率是一样的,null!=a 这样写可避免a为null的时候出现空指针错误。没别的意思。

#39


null != i 看起来别扭哈。。

一般对象比较。常见的是String的比较。。
String的比较一般是。
例如
String a = 。。。。。

"abc".equals(a)

一般这样写。。防止a 是 null会报错。。

#40


引用 21 楼 xiaozhangnima 的回复:
if(b = true){//这种情况Eclipse是不提示错误的

}
显示时会报错啊
null != a,个人习惯写法就像"".equals(a)一样


我也是这么写的,一般情况如String a = "";
判断是我会写:
if(null!=a && !"".equals(a)){
   ....
}

#41


null是个固定值,但是a应该是个变量。
将固定值放在前面,好像有时候能够减少比较次数。

#42


只是防止写错罢了吧

#43


还是习惯的写法比较好!

#44


没有效率问题。

#45


习惯问题。

#46


引用 10 楼 zangxt 的回复:
引用 9 楼 lee_09 的回复:
只是编码风格上的区别,效率是一样的;
null !=  a 要比a != null 好在于避免由于编码失误造成把a赋值为null

java不可能出现这种情况。


完全有可能出现这种情况:当然如果显示申明是boolean型的时候就不存在,但有时如
Object ob =  (a = null); 就出现了吧

#47



#48


曾经体验过两种不同的写法,同意38楼的看法。试过才知道那样可以避免变量为null时的空指针错误

#49


這隻是個人習慣啦
一般來說都會寫成這樣 a != null
如果是判斷字符串的話,這樣寫好點:!"".equals(a),
可以避免空点异常

#50


肯定第一个效率高一些 现在的机器配置都高了,用那个都差不多