Java中的Primitive vs Object类型

时间:2013-08-20 11:18:24

标签: java object primitive

这个问题浮现在我的脑海中,因为我已经在某处读过Java不是纯粹的面向对象语言,因为它使用的是原语(不是对象)。我可以同意。现在我的问题是为什么我们使用primitives/wrappers而我们已经拥有相同类型的Object?

作为示例,如果我们考虑Integer,除了对象行为之外,它与int具有相同的值限制。为什么Java仍然在这些条件下使用primitives

正如我的观点,如果Java只使用对象类型Autoboxing and Unboxing则不需要。顺便说一下,String也没有原语。

1 个答案:

答案 0 :(得分:9)

一个原因是由于内存使用。与至少8个字节的对象相比,诸如intfloat等原语需要更少的内存分配(我认为4个字节)。请参阅以下reference

此外,使用基元而不是Object等价物完成了许多算术(数字),这也是它们在Java语言中非常关键的另一个原因。