哪个更有效:if(null ==变量)或if(variable == null)?

哪个更有效:if(null ==变量)或if(variable == null)?,第1张

哪个更有效:if(null ==变量)或if(variable == null)?

(类似于此问题:null == object和object==null之间的区别

我要说的是,这两个表达式在性能上绝对没有区别。

然而,有趣的是,两种情况下的编译字节码(由OpenJDK的javac发出)看起来有些不同。

对于

boolean b = variable == null

 3: aload_1    // load variable 4: ifnonnull 11          // check if it's null 7: iconst_1   // push 1 8: goto 1211: iconst_0   // push 012: istore_2   // store

对于

boolean b = null == variable

 3: aconst_null// push null 4: aload_1    // load variable 5: if_acmpne 12          // check if equal 8: iconst_1   // push 1 9: goto 1312: iconst_0   // push 013: istore_2   // store

正如@Bozho所说,

variable == null
是最常见,默认和首选的样式。

但是,在某些情况下,我倾向于放在

null
前面。例如在以下情况下:

String line;while (null != (line = reader.readLine()))    process(line);


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5051984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存