(类似于此问题: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);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)