空数组自动初始化内容?

one*_*ece 1 java arrays initialization declaration

怎么会

int alone;
System.out.println(alone);
Run Code Online (Sandbox Code Playgroud)

给出错误但是

 int[] arr = new int[1];
 System.out.println(arr[0]);
Run Code Online (Sandbox Code Playgroud)

等于0?初始化一个空数组时,它会自动将其内容初始化为0(或null等)吗?

Rob*_*per 6

语言标准

否则,将创建具有指定长度的一维数组,并将数组的每个组件初始化为其默认值(第4.12.5节).

默认值为:

  • 对于type字节,默认值为零,即(byte)0的值.

  • 对于short类型,默认值为零,即(short)0的值.

  • 对于int类型,默认值为零,即0.

  • 对于long类型,默认值为零,即0L.

  • 对于float类型,默认值为正零,即0.0f.

  • 对于double类型,默认值为正零,即0.0d.

  • 对于char类型,默认值为空字符,即'\ u0000'.

  • 对于boolean类型,默认值为false.

  • 对于所有引用类型(第4.3节),默认值为null.