Java数组是固定长度的同类型元素集合,声明时用int[] arr推荐写法,创建需new指定长度,初始化可静态或动态,访问越界或未创建即访问会抛异常。

Java中数组是固定长度的同类型元素集合,定义时必须明确类型和大小,创建后长度不可变。
数组的声明方式
声明数组有两种常见写法,效果相同,推荐将方括号放在类型后,更清晰体现“数组是一种类型”:
- int[] numbers; // 推荐:强调数组是int类型的引用
- int numbers[]; // 语法允许,但易与C风格混淆
此时只是声明了一个数组引用变量,尚未分配内存,值为null。
数组的创建(分配内存)
使用new关键字指定类型和长度来创建数组对象:
立即学习“Java免费学习笔记(深入)”;
- numbers = new int[5]; // 创建含5个默认值0的int数组
- String[] names = new String[3]; // 创建3个null引用的String数组
数组长度在创建时确定,之后不可更改。访问numbers.length可获取该长度。
数组的初始化(赋值)
初始化可在创建时或创建后进行:
- int[] arr = {1, 2, 3, 4, 5}; // 静态初始化,长度由元素个数决定
- int[] arr = new int[]{1, 2, 3}; // 动态初始化写法,new后不能写长度
- arr[0] = 10; arr[1] = 20; // 创建后逐个赋值
注意:静态初始化(大括号方式)只能在声明时使用,不能用于已声明的变量单独初始化。
常见注意事项
避免几个典型错误:
- 声明未创建就访问元素 → 抛出NullPointerException
- 下标越界(如用-1或≥length的索引)→ 抛出ArrayIndexOutOfBoundsException
- 混淆“声明”“创建”“初始化”三个阶段,误以为int[] a;就已有元素
- 试图修改数组长度 → Java不支持,需用ArrayList等动态结构替代









