【问题标题】:Usage of int vs Integer in Java [duplicate]Java中int vs Integer的使用[重复]
【发布时间】:2014-12-26 13:25:09
【问题描述】:

我正在创建一个使用 ArrayList 作为数据成员的类。 我希望课堂上的一切都保持一致;所以,我在整个班级和任何地方都使用 Integer 而不是 int。

例如这些函数:

public Integer getMax();
public void sort(Integer n);

我的问题:这比使用 int 更好吗?有人可以定义以下内容吗?

int i = obj.getMax();

// or this:
int size = 0;
obj.sort(size);

我知道 Integer 是对象类型,而 int 是原始类型。但是,我真的不知道这种情况下的用法有什么区别!

什么时候用Integer比较好,什么时候用int比较好?

【问题讨论】:

标签: java


【解决方案1】:

Integerprimitive int 之上的 wrapper 类。 AutoBoxingUnboxing 分别将 int 转换为 Integer 和 Integer 转换为 int。所以,

    Integer i = 5;         // Autoboxing
    int val = new Integer(15); // Unboxing

是有效的陈述 因此,尽可能使用原始 int。如果您需要使用集合,请使用Integer。为什么??。因为,对象在创建和使用过程中有开销。

【讨论】:

    【解决方案2】:

    在你的情况下:

    如果你在 getMax() 中返回一个整数;您是在告诉调用者他可以期望返回 null。使用 'int' 你没有这个问题。

    除此之外,整数包装对象可能会更昂贵,因为 gc 垃圾和 JIT 更难优化。

    所以尽可能使用int,没有其​​他选项时使用Integer。

    【讨论】:

    • 此外,如果您正在执行任何数学运算,那么您也需要一个原语
    【解决方案3】:

    很简单,当我需要处理对象时,我会选择整数(例如:集合),否则我更喜欢原始的。

    【讨论】:

      猜你喜欢
      • 2020-11-08
      • 2020-11-30
      • 2014-07-19
      • 2012-10-02
      • 2018-12-16
      • 2011-08-17
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      相关资源
      最近更新 更多