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

时间:2018-10-15 05:43:49

标签: java object optimization int compare

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

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

if(civ!=this)

if(civ.id!=id)

编辑:

其他信息:

Class Civ {
int id;

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

public boolean checkIfOther(Civ civ){

此:

  return (civ.id !=id);

或者这个:

  return(civ !=this);

-

}
}

1 个答案:

答案 0 :(得分:6)

civ != thisciv.id != id快(几乎毫无察觉地)。但是,请注意,只有civthis同名时,两者才是相同的。参见以下示例:

String a = new String("hello")
String b = a;
a == b // true
String c = new String("hello")
a == c // false!

例如,如果您是从数据库中加载civ,或者根据用户输入来构造它,或者以其他方式(除了直接从this分配它(反之亦然)创建它),第一种方法将失败,因为它们两个不同的(即使可能相等)对象。如果不确定,请使用id以确保安全。