Java中创建固定长度空数组的本质是用new指定类型和长度,元素自动初始化为默认值(如int为0、boolean为false、引用类型为null),长度不可变;常用语法为int[] arr = new int[5];,不可混用大括号;泛型数组需绕过类型擦除限制。
Java中创建固定长度的空数组,本质是声明一个指定类型和长度的数组,所有元素自动初始化为该类型的默认值(如int为0、boolean为false、引用类型为null),并非“真正为空”(即不包含任何有效数据),而是“已分配空间但未显式赋值”。这种数组长度不可变,符合“固定长度”的要求。
new指定类型和长度这是最常用、最清晰的方式,适用于所有类型:
int[] arr = new int[5]; → 创建含5个0的整型数组String[] names = new String[3]; → 创建含3个null的字符串数组
boolean[] flags = new boolean[10]; → 创建含10个false的布尔数组如果不需要后续修改长度,且初始内容可预知,可用大括号语法。但注意:这会立即填充指定值,不是“空”,而是“显式初始化”:
int[] arr = {}; → 长度为0的空数组(合法,但几乎无实用场景)int[] arr = {0, 0, 0, 0, 0};→ 效果等同于new int[5],但不够简洁int[] arr = new int[5] {};这类混合写法,编译报错Java泛型在运行时被擦除,因此无法直接写new ArrayList(编译错误)。正确做法是:
ArrayList[] listArray = new ArrayList[5];(元素为null)ArrayList[] safe = (ArrayList[]) new ArrayList[5];
List>等集合替代固定数组避免把“空数组”误解为“null”或“未初始化”:
int[] arr = null; → 是空引用,不是空数组;访问arr.length会抛NullPointerException
int[] arr = new int[0]; → 是真实存在的数组对象,arr.length == 0,可安全调用方法new创建,长度就锁定,无法扩容或缩容;需动态大小请用ArrayList
基本上就这些。固定长度空数组的核心就是new Type[size],理解默认初始化规则和引用/基本类型的差异,就能准确使用。