java一维数组定义核心三步:声明(推荐int[] name)、初始化(动态new int[n]、静态{...}或new type[]{...})、使用;数组长度固定、下标从0开始、引用类型共享内存。

Java 中定义一维数组,核心就三步:声明变量、分配内存(初始化)、使用元素。关键不是“能不能写”,而是“哪一种写法更规范、更安全、更易维护”。
声明语法:推荐用 type[] name 形式
声明只是告诉编译器“我要用一个数组变量”,不分配空间,也不赋值。
- ✅ 推荐写法:
int[] numbers;或String[] names;—— 方括号紧贴类型,语义清晰:这是一个“int数组类型”的变量 - ❌ 不推荐写法:
int numbers[];—— 看起来像声明一个 int 变量叫numbers[],容易误解,且不符合 Java 编码惯例 - ⚠️ 注意:声明时不能写长度,比如
int[5] arr;是非法的;方括号里必须为空
初始化方式:三种常用场景对应不同写法
声明之后必须初始化才能使用,否则变量为 null(引用类型)或编译报错(局部变量未初始化)。
-
动态初始化(指定长度):
int[] scores = new int[8];→ 分配 8 个 int 元素的空间,每个默认值为0 -
静态初始化(直接给值):
double[] prices = {19.9, 29.5, 9.8};→ 长度由大括号内元素个数自动确定(这里是 3),无需写new -
new + 初始化器(显式 new + 花括号):
char[] flags = new char[] {'Y', 'N', 'M'};→ 和上一种效果相同,但显式写出new,适合需要在运行时构造数组的场合
常见误区与注意事项
看似简单,但几个细节不注意就会出错或引发隐患。
- 数组一旦创建,长度不可变 ——
length是 final 属性,不能赋新值,也不能调用类似resize()的方法 - 基本类型数组元素有默认值(如
int默认0,boolean默认false),引用类型数组元素默认是null - 下标从
0开始,最大合法索引是length - 1;访问arr[arr.length]会抛ArrayIndexOutOfBoundsException - 数组是引用类型:两个变量指向同一数组时,修改其中一个会影响另一个,例如
int[] a = {1,2}; int[] b = a; b[0] = 99;后,a[0]也变成99
实际编码建议
写代码时优先考虑可读性与一致性。
- 始终用
type[] name声明,团队协作中避免歧义 - 如果已知全部初始值,用
{...}静态初始化,简洁直观 - 如果只知长度、值待后续填充,用
new type[n] - 避免混用两种声明风格(比如类中一部分用
int[] a,另一部分用String b[]),保持代码统一
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











