我对两种不同风格的 equals 比较的性能(如果有影响的话)有疑问:
if(obj!=null)
{
//perform some operation set 1
}
else
{
//do operation set 2
}
对比
if(obj==null)
{
//do operation set 2
}
else
{
//perform some operation set 1
}
在第一种情况下,我在某处读到它的双重赋值,但现在不记得了。就绩效/分配而言,这两种情况是否相同?
编辑
参见 PMD 规则,例如 Link1或Link 2 (如果谈到一种样式至少在可读性方面更好,请搜索标题 ConfusingTernary)
最佳答案
这取决于您的情况中哪种情况会更频繁地发生。始终将更频繁的场景保留为第一个 block 。
假设我必须测试 A > 10 是否,那么我将看到我的业务需求,如果 A 大于 10 的可能性大于我将其保留为第一个 block 。
大多数情况下,空值的频率非常低,因此应该将其作为第二个 block 。
if(obj!=null){
//perform some operation set 1
}else{
//do operation set 2
}
因为你在一种情况下所做的是:-
check cond 1 > if true > execute
或
check cond 1 > if false > check 2 > if true > execute
因此,如果您知道条件 1 在大多数情况下为真,则选择此选项。
关于java - 是否在 if else block 中检查 == 等于或 != 不等于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32110960/