问一个无关的问题,我有这样的代码:
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
// Check property values
}
Run Code Online (Sandbox Code Playgroud)
我得到了一条评论,声称这不是最优的,相反(如果我理解正确的话)应该这样做:
public boolean equals(Object obj)
{
if (this == obj)
return true;
else if (obj == null)
return false;
else if (getClass() != obj.getClass())
return false;
// Check property values
}
Run Code Online (Sandbox Code Playgroud)
由于返回语句,我无法真正理解为什么它们中的任何一个应该比另一个更高效或更快.鉴于某个对象,就我所见,这两种方法都必须进行相同数量的检查.并且由于返回语句,不会在其中任何一个中运行额外的代码.
我在这里错过了什么吗?有东西吗?是否有一些编译器优化或正在发生的事情或其他什么?
我知道这是微优化,我很可能会坚持第一种方式,因为我认为它看起来比较清晰,所有的ifs都在同一个位置上.但我无能为力; 我很好奇!
我正在尝试使用简单的if/else返回不同的值来检查Java中的偶数.
if (move % 2 == 0) {
return "o";
} else {
return "O";
}
Run Code Online (Sandbox Code Playgroud)
我知道你可以使用JavaScript
if () : a ? b ;
Run Code Online (Sandbox Code Playgroud)
这可以在Java中使用吗?