提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:以下是本篇文章正文内容,下面案例可供参考
一、数组的概念
数组是存储多个相同数据类型的元素的存储模型。
注:Java中数组必须初始化
(初始化:为数组元素分配内存空间,并为其赋值 )
二、分类
1.一维数组
- 定义格式
数据类型[ ] 数组名; eg. int[ ] arr; - 初始化
<1>动态初始化:只指定数组长度,由系统分配初始值
格式:
数组类型[ ] 数组名=new 数据类型[数组长度];
eg. int[ ] arr=new int[6];
补充—系统默认初始值:
整型——0;浮点型——0.0;布尔型——false;
字符型——空字符;引用数据类型——null
<2>静态初始化:指定数组元素初始值,由系统分配长度
格式:
数据类型[ ] 数组名=(new 数据类型){数据1,数据2,…}
eg. int[ ] arr={1,2,3…}
-
内存图
-
数组遍历:采用for循环
代码如下(示例):
int[] arr=new int[3];
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
2.二维数组
- 定义格式
数据类型[行数 ][列数 ] 数组名; eg. int[3][2] arr; - 初始化
<1>动态初始化:只定义数组长度(行数),由系统决定初始值
格式:
数据类型[ ][ ] 数组名=new 数据类型[行数][ ];
eg. int[ ][ ] arr=new int[3][ ];
注:二维数组动态初始化时,必须定义行数
<2>静态初始化:指定数组元素初始值,由系统决定数组长度
数据类型[ ][ ] 数组名={{数据1,数据2},{数据3,数据4}…};
eg. int[ ][ ] arr={{1,2},{3,4}…};
-
内存图
-
数组遍历:在遍历一维数组的基础上再次进行for循环
代码如下(示例):
int[][] arr=new int [3][2];
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.println("arr["+i+"]["+j+"]= "+arr[i][j]);
}
}
三、常见问题
1.索引越界问题(即数组下标越界问题)——ArrayIndexOutOfBoundsException:
访问了数组中不存在的索引对应的元素
补充:索引指的是数组下标,可以是整型常量或整型表达式
2.空指针异常——NullPointerException:
访问的数组已经不再指向堆内存的数据