-- ---------------------- 本章概况
-- ---------------------- 课件
-- ---------------------- 随堂复习与企业真题
-- ---------------------- 拓展练习
-- ---------------------- 本章概况
![](https://img.haomeiwen.com/i2673147/dec9580904d7edfe.jpg)
![](https://img.haomeiwen.com/i2673147/25c61cfda14bd4dc.jpg)
-- ---------------------- 课件
- 数组的概述(1.1 为什么需要数组/1.2 数组的概念/1.3 数组的分类)
- 数组本身是`引用数据类型`,而数组中的元素可以是`任何数据类型`,包括基本数据类型和引用数据类型。
- 创建数组对象会在内存中开辟一整块`连续的空间`。占据的空间的大小,取决于数组的长度和数组中元素的类型。
- 数组中的元素在内存中是依次紧密排列的,有序的。
- 数组,一旦初始化完成,其长度就是确定的。数组的`长度一旦确定,就不能修改`。
- 我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快。
- 数组名中引用的是这块连续空间的首地址。
- 一维数组的使用(2.1一维数组的声明/2.2 一维数组的初始化/2.3 一维数组的使用/2.4 一维数组的遍历[for]/2.5 数组元素的默认值)
String[] foods = new String[]{'拌海蜇','龙须菜','炝冬笋',"玉兰片"}; //静态
String [] foods = new String[4];//动态
foods[0] = '炝冬笋'; //调用 越界概念
对于引用数据类型而言,默认初始化值为null(注意与0不同!)
其余都是0。最多加个f/l
- 一维数组内存分析(3.1 Java虚拟机的内存划分/3.2 一维数组在内存中的存储)
弹匣 式 入栈 出栈 数组开辟空间new 变量名存储地址值首位
-
一维数组的应用
-
多维数组的使用(5.1 概述/5.2 声明与初始化/5.3 数组的长度和角标/5.4 二维数组的遍历/5.5 内存解析/5.6 应用举例)
-
数组的常见算法(6.1 数值型数组特征值统计/6.2 数组元素的赋值与数组复制/6.3 数组元素的反转/6.4 数组的扩容与缩容/6.5 数组的元素查找/6.6 数组元素排序)
数组的扩容与缩容
扩容:其实就是新造数组 new 然后再转移值
缩容:X位后 向前覆盖
- Arrays工具类的使用
//1. boolean equals(int[] a,int[] b):比较两个数组的元素是否依次相等
int[] arr1 = new int[]{1,2,3,4,5};
// int[] arr2 = new int[]{1,2,3,4,5};
int[] arr2 = new int[]{1,2,3,5,4};
boolean isEqual = Arrays.equals(arr1,arr2);
System.out.println(isEqual);
//2. String toString(int[] a):输出数组元素信息。
System.out.println(arr1);
System.out.println(Arrays.toString(arr1));
//3.void fill(int[] a,int val):将指定值填充到数组之中。
Arrays.fill(arr1,10);
System.out.println(Arrays.toString(arr1));
//4. void sort(int[] a):使用快速排序算法实现的排序
int[] arr3 = new int[]{34,53,3,2,65,7,34,5,76,34,67};
Arrays.sort(arr3);
System.out.println(Arrays.toString(arr3));
//5. int binarySearch(int[] a,int key):二分查找
//使用前提:当前数组必须是有序的
System.out.println(Arrays.binarySearch(arr3,34));
- 数组中的常见异常(8.1 数组角标越界异常/8.2 空指针异常)
数组越界
空指针 null
-- ---------------------- 随堂复习与企业真题
1. 数组的概述
> 数组的声明和初始化
int[] arr = new int[10];
String[] arr1 = new String[]{"Tom","Jerry"};
> 调用数组的指定元素:使用角标、索引、index
>index从0开始!
> 数组的属性:length,表示数组的长度
> 数组的遍历
> 数组元素的默认初始化值
> 一维数组的内存解析(难)
前提:在main()中声明变量:int[] arr = new int[]{1,2,3};
> 虚拟机栈:main()作为一个栈帧,压入栈空间中。在main()栈帧中,存储着arr变量。arr记录着数组实体的首地址值。
> 堆:数组实体存储在堆空间中。
- 一维数组的使用(重要)
> 数组的声明和初始化
int[] arr = new int[10];
String[] arr1 = new String[]{"Tom","Jerry"};
> 调用数组的指定元素:使用角标、索引、index
>index从0开始!
> 数组的属性:length,表示数组的长度
> 数组的遍历
> 数组元素的默认初始化值
> 一维数组的内存解析(难)
前提:在main()中声明变量:int[] arr = new int[]{1,2,3};
> 虚拟机栈:main()作为一个栈帧,压入栈空间中。在main()栈帧中,存储着arr变量。arr记录着数组实体的首地址值。
> 堆:数组实体存储在堆空间中。
- 二维数组的使用(难点)
> 数组的声明和初始化
> 调用数组的指定元素
> 数组的属性:length,表示数组的长度
> 数组的遍历
> 数组元素的默认初始化值
> 二维数组的内存解析(难)
- 数组的常用算法(重要)
- Arrays工具类的使用
toString() / sort() / binarySearch()
- 数组中的常见异常
- ArrayIndexOutOfBoundsException
- NullPointerException
网友评论