使用整型与整数

2022-08-31 14:52:55

我遇到了一个使用整数变量来捕获要在for循环中使用的大小的类。这是很好的做法,还是应该使用int基元数据类型?

Integer size = something.getFields().size();
for (Integer j = 0; j < size - 1; ++j) 

答案 1

提供 Integer 类,以便可以以纯 OO 方式对值进行装箱/拆箱。在适当的时候使用int,除非你特别需要以OO的方式使用它;在这种情况下,Integer 是合适的。

Java Int vs Integer

然而,这里正在发生非常不同的事情。整数是一个数字;> Integer 是可以引用包含数字的对象的指针。

...

int 不是对象,不能传递给任何需要对象的方法。一个常见的情况是使用提供的集合类(List,Map,Set) - 尽管可以编写这些类的版本,这些版本提供与对象版本类似的功能。每当使用内省时(例如在反射API中),通常都需要包装类(整数,双精度等)。

更好地描述何时使用一个与另一个:

在整型和整数之间进行选择

我将从如何使用这些类型开始,然后再详细介绍原因。

  • 出于性能原因首选int
  • 采用对象(包括像这样的泛型类型)的方法将隐式地要求使用List<T>Integer
  • 对于低值(-128 至Integer
  1. 因为实习生 - 使用而不是新的整数(int)Integer.valueOf(int)
  • 不要使用 或 与整数类型一起使用==!=
  • 在需要表示缺少值(空值)时考虑使用Integer
  • 请注意将整数值取消装箱,使其与空值整型对齐

答案 2

如果您可以使用,请这样做。如果该值可以用作对象(例如泛型),请使用intnullInteger

通常,您使用哪一个并不重要,但通常性能稍好一些。int