JavaSE基础Day05
课程纲要
1. 数组 ----------> 定义格式、循环遍历(重点:数组的循环遍历)
2. 内存图 ---------> 了解即可
川哥拓展
@SuppressWarnings("all") //写在类上面,用于压制警告,预防处女座患者
第一章 数组
1、数组的含义
1. 数组的含义:
它是一个容器,可以存放多个相同数据类型的变量。
数组是一个引用数据类型。(引用数据类型: 地址值、默认值)
2. 学习的目的:
A. 它是引用数据类型的入门。(我们通过数组可以认识很多的引用数据类型的特点)
B. 它是容器的入门。(我们通过它可以认识到容器的概念)
2、数组的初始化
1. 初始化的分类: (选择的标准: 知道数据值的选静态初始化,不知道具体值的选动态初始化)
A. 动态初始化 //给出了长度,没有给出具体的数据值
B. 静态初始化 //给出具体的值,长度由系统帮助你推断
2. 动态初始化的格式:
A. 格式:
数据类型[] 数组名称 = new 数据类型[数组长度]; //备注: 数组的长度,这个数组可以存放元素的个数
B. 例如:
int[] array1 = new int[3]; //我们创建了一个int类型的数组,数组的名称是array1,可以存放3个int类型数据
double[] array2 = new double[4]; //我们创建了一个double类型的数组,数组的名称叫array2,可以存放4个数据
3. 静态初始化的完整格式:
A. 格式:
数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3}; //备注: 数组长度由系统推断出来
B. 例如:
int[] array3 = new int[]{11,22,33,44}; //创建了一个int类型的数组 array3,存放元素 11,22,33,44
double[] array4 = new double[]{3.66,7.99}; //创建了一个 double 类型的数组 array4,存放元素3.66 7.99
4. 静态初始化的省略格式:
A. 格式:
数据类型[] 数组名称 = {元素1,元素2,元素3}; //备注: 数组长度由系统推断出来
B. 例如:
int[] array5 = {11,22,33,44}; //创建了一个int类型的数组 array5,存放元素 11,22,33,44
double[] array6 = {3.66,7.99}; //创建了一个 double 类型的数组 array6,存放元素3.66 7.99
3、数组的遍历【重点】
1. 数组遍历的含义:
将数组当中的元素,无重复,无遗漏的打印输出在控制台上面。 //例如: 每天都要点名,一个也不能少
2. 数组遍历的方式:
A. 正向遍历 数组名称.fori 回车 [重点]
B. 反向遍历 数组名称.forr 回车
3. 数组遍历的Java代码案例:
//定义一个数组
int[] arr = { 11,22,33,44,55 };
//正向遍历数组,快捷键 数组名称.fori 回车
//例如: arr.fori 回车
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
System.out.println("===========================");
//反向遍历数组,快捷键 数组名称.forr 回车
//例如: arr.forr 回车
for (int i = arr.length - 1; i >= 0; i--) {
System.out.println(arr[i]);
}
第二章 内存图
1、常见数据类型的默认值
1. 基本数据类型
A.整数类型 默认值是 0
B.浮点数类型 默认值是 0.0
C.字符类型 默认值是 '\u0000'
D.布尔类型 默认值是 false
2. 引用数据类型
如果是引用数据类型,默认值是 null
2、Java当中的内存划分
1. 栈: stack [重点] 方法会在栈当中执行,存放的是局部变量(写在方法当中的变量叫做局部变量)
2. 堆: heap [重点] 存放的是 new 出来的东西,有两个值(地址值和默认值)
3. 方法区: method area [重点] 存放的是 .class 相关信息,主要是方法的头信息(方法名称,参数列表,返回值类型)
4. 本地方法栈: native method stack
5. 寄存器: pc register
3、数组操作的两个小问题
1. 数组索引越界异常 ArrayIndexOutOfBoundsException
A.原因: 访问了不存在的数组索引
B.解决方案: 修改数组的索引
2. 空指针异常 NullPointerException
A.原因: 忘记了 new 的操作
B.解决方案: 补上 new