一、数组
1、数组
数组是一个容器,用来保存一批同种类型的元素
2、数组的定义
①静态初始化数组
格式:
1)完整格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
2)简化格式:数据类型[] 数组名 = {元素1,元素2,...};
特点:
一开始就确定了要保存的元素
使用场景:
如果一开始就确定了要保存的所有元素,就使用静态初始化数组
②动态初始化数组
格式:
数组类型[] 数组名 = new 数组类型[数组长度];
特点:
一开始只确定了数组的类型和长度------后期为元素进行赋值
使用场景:
一开始不确定要具体保存的元素值,这个时候用动态初始化数组
动态初始化数组后元素的默认值:
3、数组的操作
①获取数组中的元素
int[] arr = new int[6];
arr[0];
数组名称[索引]
②修改数组元素
arr[0] = 99;
③获取数组的长度
arr.length
4、数组的注意事项
①数组定义的格式可以写成:数组类型 数组名[] = ...
②数组一旦定义出来了,它里面的元素类型和个数就确定了
③什么类型的数组只能存储什么类型的元素,不能存储其他类型的元素
二、数组的遍历
1、什么是数组遍历
是一个一个的访问数组中的元素,不仅仅是打印
2、问什么要遍历
开发中的很多操作,比如平均分,找最大最小值等这些操作都需要遍历
3、怎么遍历数组的元素
int[] ages = {20,30,40,50};
for (int i = 0; i < ages.length; i++){
System.out.println(ages[i]);
}
4、数组的内存图
① Java的内存分配
1)方法区
程序启动后class文件进入的区域
2)栈区
方法运行的时候进入的区域
变量也是保存在栈区的
3)堆区
所有new出来的东西都在堆区
②两个变量指向同一个数组
1)变量中保存的是同一个数组的地址
2)两个变量都可以操作这个数组,一个变量的操作,另一个变量也能看到修改后的结果
5、数组使用的常见问题
①数组索引越界异常
ArrayIndexOutOfBoundsException:访问的索引超出了数组中元素最大索引
②空指针异常
NullPointerException:蜀国数组变量没有指向任何具体的数组,而去访问数组的元素或者调用数组的length属性等
6、Debug工具的使用
①控制程序一行一行的往下执行,用来查看代码执行流程和排查问题
②使用步骤
1)打断点
在代码左侧单击,出现的红点就是断点