Java 中已初始化但为空的整数数组中存储了什么值

What value is stored in an initialized but empty integer array in Java

我制作了以下数组:

int[] array = new int[9];

此数组已初始化,但为空。在那种情况下,这个数组的任何索引的值是多少?当我打印出来时,它给我 0。这是否意味着这里存储了一个零(就像你调用了 int x = 0)?还是null?

此外,这对任何 Object 数组都一样吗?是这个对象的空实例,还是null?

所有元素都初始化为0。

如果它是对象数组,它将用 null 初始化,如果它是原始值数组(如 int),它将用 0 初始化。对于非数字基元 boolean 它是 false 而对于 'char' 它是 '\u0000'。有关详细信息,请查看以下页面上的 table 默认值:

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

我从 Javadocs 复制:

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

原始数据类型:默认值

Data Type   Default Value (for fields)
byte    0
short   0
int 0
long    0L
float   0.0f
double  0.0d
char    '\u0000'
String (or any object)      null
boolean false

因此,对于 int,它是零 (0)

整数 class 可以为空,但是 "int" 类型不能为空。

你可以试试 int x = null;你会遇到错误。

因此它默认创建为 0,直到您更改它。

默认情况下,int 数组中的每个值都初始化为 0。这是您可以轻松自己尝试的东西:

    int [] nums = new int [9];

    for (int i = 0; i < nums.length; i++) {
        System.out.println(nums[i]);
    }

结果:

0
0
0
0
0
0
0
0
0

以下是 Java 中不同类型的默认值:

字节 0

短 0

整数 0

长 0L

浮动 0.0f

双 0.0d

char ‘u0000’

字符串(或任何对象)null

布尔假

如您所见,int 默认为 0。