当我们有包装类时,为什么支持原语?

我们在java中有包装类,比如Interger,Float ..为什么它仍然是支持原始文件,它停止java是完全面向对象的语言?

作为对象的包装器被放置在堆中。 基元只是“值”并进入堆栈。 这样更有效,因为对于堆中的包装基元,您需要(至少)值(在堆栈中) 对包装器对象的引用。

这种性能增益是否重要取决于您正在做什么。 对于繁重的数字工作,当然,但99%的东西,这是一个烦恼。 首先,你不能将原语存储在Collection中; 他们得到了自动装箱。 因此,存储大量数据的唯一方法是使用普通数组,这反过来会导致其他类型的低效率(例如,如果您需要调整它们的大小)。

因为原语在内存和CPU处理方面更轻,更有效。

一句话:表现。

包装器类型也是不可变的,例如,如果想要将一个用于循环计数器,则会使其成本更高。

JVM还有用于直接对基元进行算术运算的操作码。