在Java中交换对象或原语是否更昂贵?

时间:2015-05-11 02:22:01

标签: java object primitive

假设我有一些类似的对象。为方便起见,请考虑整数。但实际上它可能是一些组成的数据类型,如汽车或东西。进一步说我需要找到极值。交换指数会更便宜吗?对象?或者没关系?换句话说,是示例A或示例B更便宜

示例A

int least = 0;
for(int i=1; i<objects.length;i++)
  if(objects[i].isLessThan(objects[least)) least= i;

示例B

Stuff least = objects[0];
for(int i=1; i<objects.length;i++)
  if(objects[i].isLessThan(objects[least)) least= objects[i];

1 个答案:

答案 0 :(得分:0)

java中的引用,如果你要复制一个对象,你将要复制的是32位机器上的32位,或64位机器上的64位。

另一方面,原语取决于哪种原语。例如,一个字节是8 bits wheras an integer is 32因此,复制一个整数将花费同样多(或64位机器的一半)复制时间作为指针。

最后,它并不真正重要,因为您只复制引用,而不是指向的数据。