pst*_*ton 60
其他人已经提到某些构造,例如Collectionsrequire对象和那些对象比原始对象(内存和装箱)有更多的开销.
另一个考虑是:
将对象初始化为null或将null参数发送到方法/构造函数以指示状态或函数可能很方便.这不能用原语来完成.
许多程序员将数字初始化为0(默认值)或-1表示这一点,但根据情况,这可能是错误的或误导性的.
这也将设置场景,以便NullPointerException在某些东西被错误地使用时,这比一些任意的bug更加程序员友好.
Cod*_*ody 11
在我看来,如果我的类成员是包装变量,它不依赖于默认值,这是开发人员友好的行为.
1.
class Person {
int SSN ; // gets initialized to zero by default
}
Run Code Online (Sandbox Code Playgroud)
2.
class PersonBetter {
Integer SSN; //gets initialized to null by default
}
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,您无法保持SSN值未初始化.如果您在尝试使用之前未检查该值是否已设置,则可能会受到影响.
在第二种情况下,您可以使用null初始化SSN.这可能会导致NullPointerException,但是无论何时尝试在不初始化SSN字段的情况下使用它,都会在不知不觉中将默认值(零)作为SSN插入到数据库中.
如果必须,我只会使用包装器类型.
在使用它们时,除了它们之外,你不会获得太多收益Objects.
而且,你会减少内存使用的开销和装箱/拆箱所花费的时间.
| 归档时间: |
|
| 查看次数: |
69662 次 |
| 最近记录: |