java一维数组需分三步:声明(如int[] arr;)、初始化(动态new int[3]、静态{1,2,3}或new int[]{1,2,3})、获取长度用arr.length(非方法,不可变)。

Java一维数组的声明、初始化和长度获取是入门必会的基础操作,关键在于分清“声明”“创建(分配空间)”“赋值(初始化)”三个阶段,不能跳步,否则运行时报错。
一、声明数组:只起名字,不占内存
声明只是告诉编译器“我要用一个数组变量”,此时还没分配任何内存,也不能访问或修改元素。
- 推荐写法:int[] scores;(类型+方括号在前,语义清晰)
- 兼容写法:int scores[];(C风格,不推荐,易与多维混淆)
- 注意:声明时不能写长度,比如
int[5] scores;是语法错误
二、初始化数组:三种常用方式
初始化 = 创建内存空间 + 设置初始值。必须完成这一步,数组才能安全使用。
-
动态初始化(指定长度,用默认值填充)
int[] ages = new int[4];
→ 分配4个int空间,每个元素自动为 0(int默认值) -
静态初始化(直接给值,长度由元素个数决定)
String[] names = {"Alice", "Bob", "Cindy"};
→ 长度为3,元素依次赋值;必须在声明时写全,不能拆成两行 -
new + 花括号初始化(等价于静态,但可延迟)
double[] prices = new double[]{19.9, 29.5, 9.8};
→ 同样长度为3,适合需要先声明、后一次性赋值的场景
三、获取数组长度:用 .length,不是方法
数组长度是固定属性,通过 数组名.length 直接获取,后面不加括号。
-
int[] data = {10, 20, 30};System.out.println(data.length); // 输出 3 - 最大合法索引是 data.length - 1,访问
data[3]会抛ArrayIndexOutOfBoundsException -
.length是数组对象的公共字段,不是方法,也不是 String 的length()
四、常见误区提醒
初学者容易在这里栽跟头:
- 只声明没初始化就使用,如
int[] arr; System.out.println(arr[0]);→ 编译通过,运行报NullPointerException - 误把
int[] arr = {1,2};拆成int[] arr; arr = {1,2};→ 后者编译失败 - 混淆
arr.length和arr.length()→ 后者不存在,会编译报错 - 认为数组长度可变 → Java数组一旦创建,长度不可更改,需换用 ArrayList 等集合
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











