我正在创建一个使用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?
答案 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),否则我更喜欢原语。