Java中的原始vs对象类型

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

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

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

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

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