小智 8
这就是Java Notes在autoboxing上所说的:
喜欢原始类型
出于两个原因,使用不需要对象的原始类型.
- 原始类型可能比相应的包装类型快很多,并且从不慢.
- 包装类型的不变性(在创建后不能更改)可能使它们无法使用.
- 可能存在一些涉及==(比较引用)和.equals()(比较值)的意外行为.有关示例,请参阅下面的参考.
这是一个设计选择,并不是每个案例都可以轻易回答.
有几个项目可能会影响您的决定:
好处:
自动装箱和自动拆箱可以使您的代码更易于阅读:
省去所有不必要的.doubleValue()并Double.valueOf()减少视觉噪音,并使您的代码更容易阅读.
自动装箱允许您轻松使用原始值的集合(例如List<Double>,...)
缺点:
过度,不必要的自动装箱和自动拆箱可能会影响您的表现.
例如,如果你有一个API 返回一个double和另一个期望 a的API double,但是你把它作为一个Double处理,那么你就是在进行无用的自动装箱.
自动拆箱可以引入NullPointerException您不期望的地方:
public void frobnicate(Double d) {
double result = d / 2;
// ...
}
Run Code Online (Sandbox Code Playgroud)使用自动装箱值的集合使用了很多可比的更多的内存double[],例如.
| 归档时间: |
|
| 查看次数: |
4576 次 |
| 最近记录: |