12.3.5 一些警告
既然Java提供了自动装箱/拆箱特性,有些程序员可能会专门使用Integer或Double,而完全放弃基本类型。例如,可能使用自动装箱/拆箱编写类似下面的代码:
在这个例子中,使用Double类型的对象保存用于计算直角三角形斜边的值。尽管这段代码从技术上讲是正确的,并且可以工作,实际工作得很好,但这是对自动装箱/拆箱的滥用。与使用基本类型double编写的等价代码相比,上面代码的效率低很多。原因是每次进行自动装箱/拆箱都会增加开销,而使用基本类型不需要这些开销。
通常,应当限制类型封装器的使用,只有当需要基本类型的对象表示形式时才应当使用。提供的自动装箱/拆箱特性不是用来作为消除基本类型的“后门”。