在c#中,您说明条件的顺序的执行速度是否有任何差异?
if (null != variable) ...
if (variable != null) ...
Run Code Online (Sandbox Code Playgroud)
从最近开始,我经常看到第一个,因为我习惯了第二个,所以引起了我的注意.
如果没有差异,第一个的优势是什么?
我写了两种方法来检查性能
public class Test1 {
private String value;
public void notNull(){
if( value != null) {
//do something
}
}
public void nullNot(){
if( null != value) {
//do something
}
}
}
Run Code Online (Sandbox Code Playgroud)
并在编译后检查它的字节码
public void notNull();
Code:
Stack=1, Locals=1, Args_size=1
0: aload_0
1: getfield #2; //Field value:Ljava/lang/String;
4: ifnull 7
7: return
LineNumberTable:
line 6: 0
line 9: 7
StackMapTable: number_of_entries = 1
frame_type = 7 /* same */
public void nullNot();
Code:
Stack=2, Locals=1, Args_size=1
0: aconst_null
1: …Run Code Online (Sandbox Code Playgroud) 嗨,我想知道上述比较之间的差异?
当我检查时,我得到空指针异常object.getItems() == null.但是,如果我改变它null == object.getItems(),它的工作正常.
我确实调查了这个null!= object和object之间的区别!= null 但是我没有得到满意的答案.
可能重复:
哪种方式更好"null!= object"或"object!= null"?
为什么在C#中经常会看到"null!= variable"而不是"variable!= null"?
'...!= null'或'null!= ...'最佳表现?
请指导我.null!= object和object之间有什么区别!= null
同样的"".equal("something")和"something".equals("")
哪一个有利于加工.
大多数开发人员都习惯在左侧写入null检查null.like,
if(null == someVariable)
Run Code Online (Sandbox Code Playgroud)
这有帮助吗?据我说,这影响了代码的可读性.
这可能只是一个样式问题,但我正在阅读一本Java编码书('Programming Android')并且编写者在变量方法之前首先声明为null,这是一种我不熟悉的实践.例如:
if (null == foo) {
//code here
}
Run Code Online (Sandbox Code Playgroud)
要么
if (null != foo) {
//code here
}
Run Code Online (Sandbox Code Playgroud)
代替
if (foo == null) {
//code here
}
Run Code Online (Sandbox Code Playgroud)
我看不出顺序如何在语义上/语法上产生差异,或者我在这里错了?真的很好奇.
我在某人的代码中看到了很多:null-check条件是这样编写的:
if (null == value)
Run Code Online (Sandbox Code Playgroud)
而不是
if (value == null)
Run Code Online (Sandbox Code Playgroud)
我认为没有任何理由null在Java中使用运算符.这样做有什么好处吗?这只是一个C++程序员错误地将他的技能应用于Java的情况,还是我错过了一些重要的东西?
在Java和.Net中,我听说首先使用null if (null == myObject)比首先使用对象更有效if (myObject == null).虽然我认为这可能是真的,但我不确定并希望了解SO用户.就个人而言,我认为如果首先引用该对象会更好,但如果首先使用null会有任何性能提升,我会选择相应的.
我想知道两个条件表达式null == var和var == nullif语句中的Java 之间的区别 .
java ×10
null ×4
coding-style ×2
.net ×1
benchmarking ×1
c# ×1
compare ×1
history ×1
if-statement ×1
jvm ×1
jvm-hotspot ×1
object ×1
performance ×1