哪一个最适合编程 - int
或Integer
?特别是每个人都在做同样的任务?
我正在用Java编写应用程序。在原始数据类型的大多数地方,我使用int
;对于对象,我使用Integer
。所以我很困惑 - 哪一个是最好的地方,我们必须使用对象。
根据性能,哪一个最适合Java应用程序?
答案 0 :(得分:28)
尽可能使用int
,并在需要时使用Integer
。由于int
是原始的,因此它会更快。现代JVM知道如何使用自动装箱优化Integer
,但如果您正在编写性能关键代码,int
是可行的方法。
查看this和this文章。虽然你不应该将它们视为绝对真理,但它们确实表明对象将比原始对象慢。
所以,尽可能使用int
(我会重复自己:如果你正在编写性能关键代码)。如果某个方法需要Integer,请改用它。
如果您不关心性能并希望以面向对象的方式执行所有操作,请使用Integer
。
答案 1 :(得分:6)
尽可能使用int
。仅在以下情况下使用Integer
:
Integer
可以是null
,int
总是有一个int值。List
之类的集合(尽管您可以在外部使用int
并使用自动装箱隐藏集合内部存储Integer
个实例的事实。)Integer
或Object
,或者不能使用原始类型。答案 2 :(得分:3)
int
一个原语,通常应该更快。它只包含原始数据。
Integer
是一个对象,它带有一些额外的东西,所以你例如可以将号码放在列表中。
答案 3 :(得分:1)
int是原始的,Integer是一个包裹为对象的int。
这取决于你将如何使用它们。
答案 4 :(得分:1)
作为另一种观点....也许你既不应该使用Integer也不应该使用int。
如果该值实际上是一个具有行为的对象 - 比如说金额,或距离或其他东西,那么也许你应该使用一个有行为的对象。
您可以在此处查看有关此类事情的更多信息:
http://www.time4tea.net/wiki/display/MAIN/Microtypes
虽然这可能会“慢”,但额外的类型安全性将使您的系统的编程,测试和调试变得更加容易。更快。