Java数组元素默认值由类型决定:基本类型为0、0.0、'\u0000'、false,引用类型为null;数组引用本身成员变量默认null,局部变量必须显式初始化。

Java数组的默认值取决于数组元素的类型,而不是数组本身。声明但未显式初始化的数组,其引用为null;而一旦用new创建了数组实例,每个元素会按类型自动赋予默认值。
基本数据类型的默认值
所有基本类型数组(如int[]、boolean[]、double[]等)在创建后,元素会被自动初始化为对应类型的默认值:
-
byte、short、int、long→ 0 -
float、double→ 0.0 -
char→ '\u0000'(空字符,不是空格) -
boolean→ false
引用类型数组的默认值
对于对象类型数组(如String[]、Object[]、自定义类数组),创建后每个元素默认为null:
-
String[] arr = new String[3];→arr[0]、arr[1]、arr[2]全是 null -
MyClass[] objArr = new MyClass[5];→ 所有元素都未指向任何实例,即 null
局部数组 vs 成员数组的区别
这个规则只对“已分配内存的数组”生效。注意:局部变量(方法内声明)的数组引用本身不会被默认初始化:
立即学习“Java免费学习笔记(深入)”;
- 成员变量数组(类中直接声明):未赋值时为 null;若用
new初始化,则元素按上述规则设默认值 - 局部变量数组(方法内声明):必须显式初始化才能使用,否则编译报错(“may not have been initialized”)
基本上就这些。记住关键点:数组引用默认是null(成员变量)或未定义(局部变量),而数组元素的默认值由其类型决定,且仅在数组对象被new出来之后才生效。











