上一篇
怎么声明Java数组长度?
- 后端开发
- 2025-06-09
- 4278
在Java中声明数组长度有两种方式:使用new关键字直接指定长度(如int[] arr = new int[5];),或通过初始化元素隐式确定长度(如int[] arr = {1,2,3};),数组长度一旦确定不可更改,需在创建时明确定义。
声明数组长度的两种核心方式
直接指定长度(动态初始化)
通过 new
关键字明确声明数组长度,语法:数据类型[] 数组名 = new 数据类型[长度];
-
特点:先分配固定内存,后赋值
-
示例:
// 声明长度为5的整型数组 int[] numbers = new int[5]; // 声明长度为3的字符串数组 String[] names = new String[3];
- 此时数组元素为默认值(如
int
默认为0,String
默认为null
)。
- 此时数组元素为默认值(如
通过元素个数隐式确定长度(静态初始化)
通过大括号 初始化元素,长度由元素数量自动确定:数据类型[] 数组名 = {元素1, 元素2, ..., 元素N};
-
特点:声明时直接赋值,长度不可更改
-
示例:
// 隐式声明长度为4 int[] scores = {90, 85, 77, 95}; // 隐式声明长度为2 String[] colors = {"Red", "Blue"};
关键注意事项
-
长度不可变
数组一旦创建,长度无法修改,需扩展长度时,只能创建新数组并复制数据:int[] original = {1, 2, 3}; int[] resized = new int[5]; // 新长度 System.arraycopy(original, 0, resized, 0, original.length);
-
获取已声明数组的长度
使用数组名.length
属性(非方法):String[] fruits = {"Apple", "Banana"}; System.out.println(fruits.length); // 输出:2
-
避免常见错误
- 未指定长度:
int[] arr;
仅是声明引用,未分配内存 - 长度非整数:
new int[5.0]
会导致编译错误 - 负长度:
new int[-1]
抛出NegativeArraySizeException
- 未指定长度:
多维数组的长度声明
多维数组需逐级指定长度:
// 声明3行4列的二维数组 int[][] matrix = new int[3][4]; // 不规则数组(第二维长度不同) int[][] jagged = new int[2][]; jagged[0] = new int[3]; // 第一行长度3 jagged[1] = new int[5]; // 第二行长度5
最佳实践建议
- 明确场景选择初始化方式:
- 已知元素值 → 静态初始化()
- 需后续赋值 → 动态初始化(
new
)
- 内存预分配:
大型数组优先使用new
明确长度,避免多次扩容。 - 增强代码可读性:
长度变量名使用常量(如final int MAX_SIZE = 100;
)。
引用说明遵循Oracle官方Java文档规范,参考《Java™语言规范(SE 17版)》第10章“数组”,代码示例经JDK 17编译验证,确保准确性。