在Java中使用int vs Integer

时间:2014-12-26 13:25:10

标签: java

我正在创建一个使用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?

3 个答案:

答案 0 :(得分:2)

Integer原语 int上的包装类。 AutoBoxing Unboxing 分别将int转换为Integer和Integer转换为int。所以,

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

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

答案 1 :(得分:1)

在你的情况下:

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

除此之外,由于gc litter和JIT更难以优化,Integer包装器对象可能更昂贵。

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

答案 2 :(得分:0)

很简单,当我需要处理Object时,我选择Integer(例如:Collections),否则我更喜欢原语。

相关问题