使用int或Integer

use*_*415 4 java int integer

在我的代码中有很多最终值,比如10000.它们永远不会改变,我什么都不做,只是有时检查if(number1 == number2).

是否更好地使用intInteger用于此类数字?

Mic*_*rry 9

在你的情况下,使用int.

在一般情况下,如果您处于可行使用的情况,则原始值几乎总是首选:

  • 它们可能更有效
  • 你总是可以使用==可靠的,而不是Integer类型的情况- 你必须使用它.equals()来确保你得到你想要的.有关详细信息,请参见此处

如今,内存需求不是一个问题,但是最重要的问题是第二个,如果你不了解它,可能会导致很多错误的可能性(特别是因为有些情况==会像你期望的那样工作,以及其他不会的地方 - 在这个意义上它不是一个"可靠"的错误.)


Sim*_*nda 5

由于Integers是对象,它们在内存中占用更多空间.如果您不使用Integer方法或任何其他需要它的对象,则ints更具内存效率,因为int它是原始类型.

在宏伟的计划中,考虑到现代计算机具有多少内存,这可能无关紧要.尽管如此,没有危害.

我要指出的是,如果你使用==IntegerS,你如果引用是相同的检查.对于Integer对象,该equals()方法将是优选的.