day07
一、数组的概念及两种格式
数组是一个容器,可以同时存储多个值。
- 格式一:
数据类型 [] 数组名
举例:
int [] arr;
- 格式二:
数据类型 数组名 []
举例:
int arr [];
二、数组的动态初始化
格式:
数据类型 [] 数组名 = new 数据类型 [长度];
例子:
//创建一个长度为3的数组,数组类型为int
int [] arr = new int [3];
//int : 就表示数组以后只能存int类型的整数
//[] : 定义的是一个数组
//arr: 数组的名字
//new:关键字。在内存中开辟了一个小空间。
//int:就表示数组以后只能存int类型的整数
//[3]: 表示现在的这个数组长度为3.
注意点:
1,等号前面和后面的数据类型要完全保持一致。
2,new关键字,表示在堆内存中开辟了一个新的小空间。
3,方括号中的数字3,表示数组的长度。
数组一旦创建好了,长度是不能发生变化的。
三、数组的静态初始化
完整格式:
数据类型 [] 数组名 = new 数据类型 []{ 数据1,数据2,数据3,。。。。}
简写格式:
数据类型 [] 数组名 = { 数据1,数据2,数据3,。。。。}
举例:
//要把1 2 3 4 5 存到一个数组当中
//静态初始化
int [] arr1 = new int[]{1,2,3,4,5};
//简化写法:
//new int[] 可以省略的
int [] arr2 = {1,2,3,4,5};
四、索引概念及其使用
概念:
索引就是数组中每一个小格子的编号。
特点:
索引是从0开始的。
索引是连续的。
索引是逐一增加的,每次加1。
索引的范围:
最小索引:0
最大索引:数组长度 - 1
使用:
利用索引获取数组中的元素。
int number = arr[索引];
利用索引给数组中的元素赋值。
arr[索引] = 10;
五、数组内存图:
一)、一个数组内存图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QkF2c1Cx-1594476476646)(D:\Ajava53\Ajava53基础班课堂讲解资料图\day07\一个数组的内存图.png)]
二)、两个数组内存图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6eJVXtuA-1594476476649)(D:\Ajava53\Ajava53基础班课堂讲解资料图\day07\两个数组的内存图解.png)]
注意:
只要看到new,就是在堆里面开辟了一个新的小空间。
三)、两个数组指向同一个小空间内存图
例子:
int [] arr1 = new int [3];
int [] arr2 = arr1;//把变量arr1记录的地址值赋值给了变量arr2
//是不是又开了一个空间?
//不是的。因为这里只有一个new
arr2[0] = 10;
arr2[1] = 20;
arr2[2] = 30;
System.out.println(arr1[0]);//10
System.out.println(arr1[1]);//20
System.out.println(arr1[2]);//30
System.out.println("=================");
System.out.println(arr2[0]);//10
System.out.println(arr2[1]);//20
System.out.println(arr2[2]);//30
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-84VCKVF7-1594476476651)(D:\Ajava53\Ajava53基础班课堂讲解资料图\day07\两个数组指向同一个小空间的图解.png)]
注意:
arr[索引] = 值;
值到底赋值给谁?就看arr这个变量记录的是谁的地址值。
六、数组常见两个问题
一)、数组索引越界异常
出现的原因:
访问了不存在的索引。
2)、空指针异常
出现的原因:
arr现在没有指向任何的空间。
null:表示不指向任何的小空间。
赠人玫瑰手有余香,小手一赞,身缠万贯!