Java数组如何表示?
- 后端开发
- 2025-07-03
- 6
在Java中,数组是一种基础数据结构,用于存储固定大小的同类型元素,它通过连续内存分配实现高效访问,是处理批量数据的核心工具,以下是详细解析:
一维数组的表示
声明数组
// 语法:数据类型[] 数组名; int[] numbers; // 推荐写法(清晰表明数组类型) String names[]; // 兼容C风格的写法(不推荐)
创建数组
使用 new 关键字分配内存(数组长度固定):
numbers = new int[5]; // 创建长度为5的int数组(默认值:0) names = new String[3]; // 创建长度为3的String数组(默认值:null)
初始化数组
静态初始化(声明时直接赋值):

动态初始化:
int[] scores = new int[3]; scores[0] = 90; // 索引从0开始 scores[1] = 85; scores[2] = 78;
多维数组的表示
二维数组(矩阵)
// 声明与创建 int[][] matrix = new int[3][3]; // 3行3列 // 静态初始化 int[][] grid = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; // 访问元素 System.out.println(grid[1][2]); // 输出:6(第2行第3列)
不规则数组
每行长度可不同:

关键特性与操作
-
长度获取
使用 length 属性(非方法):
-
遍历数组
// for循环 for (int i = 0; i < primes.length; i++) { System.out.println(primes[i]); } // 增强for循环(只读) for (String color : colors) { System.out.println(color); } -
数组复制
- System.arraycopy():高效复制 int[] source = {1, 2, 3}; int[] dest = new int[3]; System.arraycopy(source, 0, dest, 0, source.length);
- Arrays.copyOf():简化操作 int[] copy = Arrays.copyOf(source, source.length);
-
常见异常
- ArrayIndexOutOfBoundsException:索引越界(如访问 arr[5] 但数组长度为4)
- NullPointerException:未初始化数组直接访问
- 定长限制
数组创建后长度不可变,需动态扩容时建议用 ArrayList。
- 默认值规则
- 数值类型(int, double等):0
- 布尔类型(boolean):false
- 引用类型(String, 对象等):null
- 内存效率
数组内存连续,访问时间复杂度为 O(1),适合高频随机访问场景。
- 一维数组:数据类型[] 变量名 = {值1, 值2, ...};
- 多维数组:数据类型[][] 变量名 = new int[行][列];
- 核心操作:长度用 length,遍历用循环,工具类选 Arrays。
注意事项
工具类推荐
java.util.Arrays 提供常用操作:
import java.util.Arrays; // 排序 Arrays.sort(primes); // 二分查找(需先排序) int index = Arrays.binarySearch(primes, 5); // 转换为字符串 System.out.println(Arrays.toString(primes)); // 输出:[2, 3, 5, 7, 11]
Java数组通过索引高效访问元素,是处理有序数据的基石。
引用说明:本文内容参考Oracle官方Java文档(Arrays in Java)及《Java核心技术·卷I》第10版,实践代码基于Java 17语法验证。
