1.二维数组的理解 - 对于二维数组的理解,可以看成是一堆一维数组array1又作为另一个一维数组array2的元素而存在。 - 其实,从数组底层的运行机制来看,其实没有多维数组。 - 概念:数组的外层元素 ;数组的内层元素 2.二维数组的使用(6个基本点) >数组的声明和初始化 >调用数组的指定元素 >数组的属性:length,表示数组的长度 >数组的遍历 >数组元素的默认初始化值 >二维数组的内存解析(难) 3.二维数组元素的默认初始化值 3.1 动态初始化方式1:(比如: int[][] arr = new int [3][4]) 1)外层元素,默认存储地址值 2)内层元素,默认与一维数组元素的不同默认值规定相同 3.2 静态初始化方式2: (比如; int[][] arr = new int [3][]) 1)外层元素,默认存储null 2)内层元素,不存在。如果调用会报错(NullPointerException),空指针异常
4.【数组的常见算法】 1.数值型数组特征值统计 这里的特征值涉及到: 平均值、最大值、最小值、总和等 2.数组元素的赋值(实际开发中,遇到的场景比较多) 3.数组的复制 4.数组的反转 5.数组的扩容与缩容 6.数组元素的查找 顺序查找: >优点:算法简单; >缺点:效率低。执行时间复杂度O(N) 二分法查找: >优点:效率高。执行时间复杂度O(log2N) >缺点:算法相较于顺序查找难一点;前提:数组必须有序 7.数组的排序 排序算法的衡量标准:时间复杂度(最重要) 空间复杂度 稳定性 排序的分类:内部排序:外部排序(外部存储设备+内存) 内部排序的具体算法:10种 我们需要关注的几个排序算法: > 冒泡排序:最简单,需要大家会手写。时间复杂度:O(n^2) > 快速排序:最快的,开发中默认选择的排序方式;掌握快速排序的实现思路:时间复杂度O(nlogn)
8.数组中常见异常小结 > 数组角标越界的异常:ArrayIndexOutOfBoundsException > 空指针异常:NullPointerException 2.出现异常会怎样?如何处理? > 一旦程序执行中出现了异常,程序就会终止执行。 > 针对异常提供的信息,修改对应的代码,避免异常再次出现。