哪个更快:int比较与对象比较

WVr*_*ock -4 java int optimization compare object

在JAVA中,我给我的对象提供了id号(int).我想比较给定的对象是否是预期的对象.

我应该使用哪个?哪个更快?

if(civ!=this)
Run Code Online (Sandbox Code Playgroud)

要么

if(civ.id!=id)
Run Code Online (Sandbox Code Playgroud)

编辑:

额外的信息:

Class Civ {
int id;

public Civ(int i){
id = i;
 }

public boolean checkIfOther(Civ civ){
Run Code Online (Sandbox Code Playgroud)

这个:

  return (civ.id !=id);
Run Code Online (Sandbox Code Playgroud)

或这个:

  return(civ !=this);
Run Code Online (Sandbox Code Playgroud)

-

}
}
Run Code Online (Sandbox Code Playgroud)

Ama*_*dan 6

civ != this是(几乎可以肯定不知不觉)的速度比civ.id != id.但是,请注意,这两个是只有同civcoreferentthis.看这个例子:

String a = new String("hello")
String b = a;
a == b // true
String c = new String("hello")
a == c // false!
Run Code Online (Sandbox Code Playgroud)

如果你是,例如,装载civ来自数据库,或从用户输入构建它,或以任何其他方式从直接分配创建它放在一边this(反之亦然),第一种方法会失败,因为他们将是两个不同的-即使可能是平等的 - 对象.如果不确定,请使用id以确保安全.

  • 我会用"几乎绝对不知不觉"取代"略微".这是一个优化级别,一旦人们测量到它是应用程序的主要性能瓶颈之一,就绝对应该尝试.这种情况极有可能永远不会发生. (4认同)