这个问题浮现在我的脑海中,因为我已经在某处读过Java不是纯粹的面向对象语言,因为它使用的是原语(不是对象)。我可以同意。现在我的问题是为什么我们使用primitives/wrappers
而我们已经拥有相同类型的Object?
作为示例,如果我们考虑Integer
,除了对象行为之外,它与int
具有相同的值限制。为什么Java仍然在这些条件下使用primitives
?
正如我的观点,如果Java只使用对象类型Autoboxing and Unboxing则不需要。顺便说一下,String也没有原语。
答案 0 :(得分:9)
一个原因是由于内存使用。与至少8个字节的对象相比,诸如int
,float
等原语需要更少的内存分配(我认为4个字节)。请参阅以下reference:
此外,使用基元而不是Object等价物完成了许多算术(数字),这也是它们在Java语言中非常关键的另一个原因。