joh*_*eur 2 .net java null control-structure operator-precedence
在Java和.Net中,我听说首先使用null if (null == myObject)比首先使用对象更有效if (myObject == null).虽然我认为这可能是真的,但我不确定并希望了解SO用户.就个人而言,我认为如果首先引用该对象会更好,但如果首先使用null会有任何性能提升,我会选择相应的.
令人惊讶的是,它们在Java中的编译方式不
if (myObject == null);
if (null == myObject);
Run Code Online (Sandbox Code Playgroud)
编译成
8 aload_1
9 ifnonnull 12 (+3)
12 aconst_null
13 aload_1
14 if_acmpne 17 (+3)
Run Code Online (Sandbox Code Playgroud)
(这是使用编译的javac 1.6.0_24.)
首先放置对象引用会产生两条指令,并将null第一条结果放在三条指令中.在此基础上,if (myObject == null) 可能会更快.
然而,正如ThorbjørnRavnAndersen所指出的,当使用JIT编译器时,字节码指令的数量并不多,因为字节码在执行之前将被转换为本机代码.即使存在性能差异,我也怀疑它是否可以衡量.
| 归档时间: |
|
| 查看次数: |
279 次 |
| 最近记录: |