9

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

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

在我看来,如果 Java 只使用 Object 类型的Autoboxing 和 Unboxing就没有必要了。顺便说一句,String 也没有原语。

4

1 回答 1

10

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

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

于 2013-08-20T11:20:52.107 回答