JavaSE基础Day05

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 
上一篇:day05 模块学习


下一篇:Vue-day05