比较int和Integer的性能

哪一个最适合编程 – intInteger 特别是每个人都在做同样的任务?

我正在用Java编写应用程序。 在原始数据类型的大多数地方,我使用int ; 对于对象,我使用Integer 。 所以我很困惑 – 哪一个是最好的地方,我们必须使用对象。

根据性能,哪一个最适合Java应用程序?

尽可能使用int ,并在需要时使用Integer 。 由于int是原始的,因此它会更快。 现代JVM知道如何使用自动装箱来优化Integer ,但是如果你正在编写性能关键代码,那么int就是最佳选择。

看看这篇文章和这篇文章。 虽然你不应该将它们视为绝对真理,但它们确实表明对象将比原始对象慢。

因此,尽可能使用int (我将重复自己:如果您正在编写性能关键代码)。 如果方法需要Integer,请改用它。

如果您不关心性能并希望以面向对象的方式执行所有操作,请使用Integer

尽可能使用int 。 仅在以下情况下使用Integer

  • 你需要一种方法来表示“没有价值”或“未初始化”。 Integer可以为nullint总是具有int值。
  • 您希望使用像List这样的集合(尽管您可以在外部使用int并使用autoboxing隐藏集合内部存储Integer实例的事实)。
  • 您正在使用需要使用IntegerObject的API,框架或工具,或者不能使用基本类型。
  • 您需要能够在对象上进行同步(非常不可能)。

int一个原语,通常它应该更快。 它只携带原始数据。

Integer是一个对象,它带有一些额外的东西,所以你可以把数字放在列表中。

int是原始的,Integer是一个包裹为对象的int。

这取决于你将如何使用它们。

作为另一种观点….也许你既不应该使用Integer也不应该使用int。

如果值实际上是具有行为的对象 – 比如说金额,或距离或某事,那么也许您应该使用具有行为的对象。

你可以在这里看到更多关于这种事情:

http://www.time4tea.net/wiki/display/MAIN/Microtypes

虽然这可能会“慢”,但额外的类型安全性将使您的系统的编程,测试和调试变得更加容易和快捷。