对某个对象数组构造null是否比向对象投射要花费更多?

The*_*nok 0 java

我有以下课程

public void dump(Integer value){
    //do soemthing with value
}
public void dump(Integer[] values){
    //do soemthing with values
}
Run Code Online (Sandbox Code Playgroud)

我想打电话dump(null),我选择投射到什么并不重要因为两者都按预期工作:

    dump((Integer[]) null);
    dump((Integer) null);
Run Code Online (Sandbox Code Playgroud)
  1. 哪一个更好地使用资源(更少ram,cpu使用)?
  2. 我认为java会为null整数预分配4个字节,为Double分配8个字节,这是真的吗?
  3. 如果没有构造函数调用,那么其他(更复杂的)对象如何被置零呢?如何存储空值?

use*_*421 8

  1. 哪一个更好地使用资源(更少ram,cpu使用)?

它不会产生任何可衡量的差异.

  1. 我认为java会为null整数预分配4个字节,为Double分配8个字节,这是真的吗?

不,Null为空.只有一种格式.你在这里混淆对象和引用.null是一个参考.所有引用都是相同的大小.

那些被空化的其他(更复杂的)对象呢?

没有"被淘汰的物品"这样的东西.

如果没有构造函数调用那么如何存储空值?

作为空值.

  • @ThenEnok你又一次混淆了对象和引用.`textView`是一个参考. (2认同)
  • 叹。对象不拥有变量。引用变量指向对象,或者为空。将引用变量设置为 null 不会对其之前可能指向的任何对象执行任何操作。 (2认同)