目录
一、数组概述
二、数组的定义
1.静态初始化数组
1.1数组的访问
1.2数组的几个注意事项
2.动态初始化数组
2.1动态初始化数组的元素默认值
三、数组的遍历
四、数组的案例
1.数组元素求和
2.数组求最值
3.猜数字游戏
4.随机排名
5.数组排序
五、数组的内存图
1.Java内存分配、数组内存图
2.两个变量指向同一个数组
六、数组使用的常见问题
七、Debug工具的使用
数组的定义:数组就是用来存储一批同种类型数据的内存区域(可以理解为容器)
结论:数组适合做一批同种类型数据的存储
定义数组的时候直接给数组赋值
静态数组初始化完整格式:数据类型[ ] 数组名 = new 数据类型[ ]{元素1,元素2,元素3...};
静态数组初始化简化格式:数据类型[ ] 数组名 = {元素1,元素2,元素3...};
1.1数组的访问
格式:数组名称[索引]
数组的长度属性: length
1.2数组的几个注意事项
1."数据类型[ ] 数组名" 也可以写成 "数据类型 数组名[ ]"
2.什么类型的数组必须存放什么类型的数据,否则会报错
3.数组一旦定义出来后,类型和长度就固定了
定义数组的时候只确定元素的类型和数组的长度,之后再存入具体的数据
数组的动态初始化格式:数据类型[ ] 数组名 = new 数据类型[长度];
静态初始化数组和动态初始化数组的区别:当前已经知道存入的元素值,用静态初始化;当前还不清楚要存入那些数据,用动态初始化
2.1动态初始化数组的元素默认值
两种初始化的使用场景总结、注意事项说明:1.动态初始化:只指定数组长度,后期赋值,适合开始知道数据的数量,但不确定具体元素值的业务场景;2.开始就存入元素值,适合一开始就确定元素值的业务场景;3.两种格式的写法是独立的,不可以混用
遍历:就是一个一个数据的访问
遍历的作用:搜索、数据统计等等都要用到遍历
需求:某部门5名员工的销售额分别是:16、26、36、6、100,请计算他们部门的总销售额
需求:游戏后台随机生成1-20之间的5个数(无所谓是否重复),然后让大家来猜数字:未猜中提示:未命中,并继续猜测;猜中提示:"猜中了",并输出该数据第一次出现的位置,且输出全部5个数据,最终结束游戏
需求:某公司开发部5名开发人员,要演讲,现在采取随机排名后进行汇报,请先依次录入员工的工号,然后展示出一组随机的排名顺序
需求:用冒泡排序的方法对一个数组排序
栈:方法运行时所进入的内存,变量也是在这里
堆:new出来的东西会在这块内存中开辟空间并产生地址
方法区:字节码文件加载时进入的内存
本地方法栈
寄存器
1.如果访问的元素超过最大索引,执行时会出现数组索引越界异常
2.如果数组变量中没有存储数组的地址,而是null,在访问数组信息时会出现空指针异常
Debug工具:IDEA自带的断点调试(排错)工具,可以控制代码从断点开始一行一行的执行,然后详细观看程序执行的情况