【发布时间】:2017-02-09 22:53:55
【问题描述】:
我有以下课程
public void dump(Integer value){
//do soemthing with value
}
public void dump(Integer[] values){
//do soemthing with values
}
我想打电话给dump(null),我选择转换为什么并不重要,因为两者都可以按预期使用空值:
dump((Integer[]) null);
dump((Integer) null);
- 哪个更好地使用资源(更少的 ram、cpu 使用)?
- 我认为 java 会为 null Integer 预分配 4 个字节,为 Double 预分配 8 个字节,这是真的吗?
- 如果没有构造函数调用,那么其他(更复杂的)为空的对象如何存储空值?
【问题讨论】:
-
两者都不会在呼叫站点使用更多资源。哪个将使用更少的 cpu 取决于这两个函数在收到时如何处理
null值。null未分配,因此(Integer)null和(Double)null使用完全相同的堆空间量......零。 -
我认为您的问题大部分由stackoverflow.com/questions/2430655/…回答
标签: java