------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
1. 第五天回顾
语句中的break;continue;
方法:程序组成部分,写方法,写类,语句
定义上,格式 public static 返回值类型(void) 名字(参数列表){ return ;}
方法要求熟练度,明确定义的2个要素
2. 第六天学习内容,数组,作用,定义,内存分配,数组操作的常见错误,数组基本操作,遍历,最值,查表法,二维数组
3. 如何理解数组
第一个引用数据类型(数组,类,接口)
数组就是一个容器,就是存储数据,一个容器,只能存储一种数据类型
如果数据太多,存储到数组中, 对象太多存储集合
班级10-13就是个数组,存储的每一个学生
好处,方便操作已经存储的数据
4. 数组定义的格式
l 第一种格式,明确存储的数据类型什么,存储数据的个数
标准格式: int[] 名字 = newint[5]; 定义存储整数int类型的数组,可以存储5个数据。
等于号左边: int[] 名字
int数组中存储的数据类型
[] 这是一个数组
等于号右边: new int[5]
new 创建一个具体的实体对象,创建一个具体的数组容器
int 数组中存储的数据类型
[] 表示一个数组
5 数组的长度,数组可以存储5个int类型数据,长度是固定的
l 第二种格式
标准格式:int[] 名字 = new int[]{1,2,3,4,5,6,7};定义存储整数int类型的数组,在定义的过程中,直接将数据存储到了数组中。
注意,采用第二种方式,new后面的[]中,不可以写长度
l 第三种格式
表示格式:int[] 名字 = {1,2,3,4,5,6,7,8};定义存储整型int类型的数组,定义中直接将数据赋值到数组中。推荐使用
5. JVM的内存划分
发生在程序的运行时期,绝不是编译期
运行的时候JVM在内存中,进行划分,数据的不同,进行分割
分成5片区域
寄存器,方法区,本地方法栈,栈,堆
寄存器:JVM通过Windows和CPU对话的时候使用,了解
方法区:存储写的方法,了解
本地方法栈:JVM调用Windows底层功能使用,了解
栈:运行的方法,局部变量
堆:存储实体对象的,数组,成员变量
6. 内存的区别
栈: 运行方法,压栈,弹栈,运行完毕就会立刻释放,包含局部的变量,语句中的变量,生命周期较短。
堆: 存储对象或者数组的实体,成员变量,引用变量记录堆内存中的地址,等待JVM回收,生命周期较长。
7. 数组一个特性
数组对于存储进来的所有数据,进行自动的编号,从0开始计算,没有负数
自动的编号叫做索引(index),下标,角标,可以直接通过索引操作数组中存储的数据
8. 数组操作中的常见量大问题
l 访问了没有的索引,数组中存储3个数据,索引0-2,访问其他的索引,出现数组的下标越界异常ArrayIndexOutOfBoundsException
l 数组的内存指向是null,但是继续操作数组,出现空指针异常 NullPointerException
l 运行中出现了以上两个异常,自己可以处理掉
9. 数组的遍历
数组的遍历,将数组中的每一个元素分别取出来,单个的操作
但是循环次数怎么控制,数组中存储了10个数据,循环10次
如果可以知道数组中的个数,数组的长度表示形式
每一个数组,都有自己的长度,固定写法,数组的属性
数组名.length 表示出数组的长度,运算结果是int类型
10. 数组的查表法
以数组的形式,建立一个虚拟的表格,需要的数据到数组中进行查找
在数组中查找数据,下标
每周1-67,如果用户输入1-7之间的数据,
比如用户输入的是2,显示"星期二"
比如用户输入的是7,显示"星期日"
输入,Scanner nextInt()
11. 二维数组
数组中还有数组,一个数组中,包含着另一个数组
l 第一种定义格式:int[][]arr = new int[3][2];定义了一个二维数组。一个大数组中可以存储3个小数组,每个小数组中,可以存储2个int数据。
l 第二种定义格式:int[][]arr = new int[3][];定义了一个二维数组。一个大数组中可以存储3个小数组,但是每一个小数组没有被定义
l 第三种定义格式:int[][] arr = {{1,2},{3,4,5},{7,8,9,10}};定义二维数组,直接存储数据,一个大数组中存储3个小数组,第一个小数组,存储2个int数据,第二个小数组存储3个int数据,第三个小数组存储4个int数据