Java里如何创建固定长度的空数组_空数组定义说明

Java中创建固定长度空数组的本质是用new指定类型和长度,元素自动初始化为默认值(如int为0、boolean为false、引用类型为null),长度不可变;常用语法为int[] arr = new int[5];,不可混用大括

号;泛型数组需绕过类型擦除限制。

Java中创建固定长度的空数组,本质是声明一个指定类型和长度的数组,所有元素自动初始化为该类型的默认值(如int0booleanfalse、引用类型为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[5](编译错误)。正确做法是:

  • 用原始类型数组: ArrayList[] listArray = new ArrayList[5];(元素为null
  • 或转为Object再强转(不推荐,有安全隐患):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],理解默认初始化规则和引用/基本类型的差异,就能准确使用。