Appearance
5. 数组
5.1 认识数组
5.2 数组的定义和访问
静态初始化数组
- 定义数组时直接赋值了
- 数组的写法特点是怎样的??
书写格式:
java
// 写法1
int[] ages = {1,2,3};
// 写法2(完整定义)
int[] ages2 = new int[]{3,4,5};
// 也可以写成
int ages3[] = {4,5,6};
写法3会有一个提醒,说,这可是C风格的写法哟。
- 数组属于什么类型?
- 数组属于引用数据类型
- 存储的数组在内存中的地址信息(打印看看)
动态初始化数组
- 动态初始化的特点
- 写法:
java
int[] ages = new int[4];
可以看出,动态初始化只给长度,不给具体的数值。
动态初始化的默认值是多少
两种数组定义的方法各适合什么业务场景?
- 动态:适合开始不确定具体元素,只知道个数的场景
- 静态:适合一开始就知道要存入哪些元素值的场景
5.3 数组在计算机中的执行原理
数组的执行原理,JAVA程序的执行原理
多个变量指向同一个数组的问题
- 多个数组变量,指向同一个数组对象的原因是什么?需要注意什么?
- 多个数组变量中存储的是同一个数组对象的地址
- 多个变量修改的都是同一数组对象的数据
- 如果某个数组变量中存储
null
,代表什么?需要注意什么?- 代表这个数组变量没用指向数组对象
- 可以输出这个变量,但不能访问对象内的内容,因为里面是空,访问会报错NullPointerException
练习
- 找出数组中的最大值(已写)
- 交换数组值(已写)
- 随机排名
- 定义一个动态初始化的数组用于录入员工工号
- 遍历数组中的每个元素
- 每遍历到一个数据,都随机一个索引值出来,让当前数据与该索引位置处的数据进行交换
- 最后输出数组内容