day06
review
-
循环结构是如何推出循环的?
- 循环条件返回
false
- 循环体内一旦执行到
break
,则跳出循环
- 循环条件返回
-
break
和continue
的相同点和不同点- break使用在switch-case和循环结构中,结束当前循环
- continue使用在循环结构中,结束当次循环
- 二者之后均不可以声明执行语句
-
for
和while
-
开发中,基本上我们都会从for、while中进行选择,实现循环结构。
-
for循环和while循环是可以相互转换的
区别:for循环和while循环的初始化条件部分的作用范围不同。
-
Eclipse
配置方法见文档
数组
-
数组(Array):
- 数组名
- 元素
- 下标/索引/角标
- 数组的长度:元素的个数
-
特点
- 数组是有序排列的
- 数组属于引用数据类型,数组元素的类型可以是基本数据类型也可以是引用数据类型
- 数组对象会在内存中开辟一块连续的空间
- 数组的长度一旦确定,就不能修改
-
分类
- 按维度分
- 一维数组
- 二维数组
- 多维数组
- 按数组元素类型分
- 基本数据类型元素的数组
- 引用数据类型元素的数组
- 按维度分
-
一维数组的使用
-
一维数组的声明和初始化
- 静态初始化:数组的初始化和数组元素的赋值操作同时进行
- 动态初始化:数组的初始化和数组元素的赋值操作分开进行
// 1.静态初始化 int[] ids; // 声明 ids = new int[]{ 1001, 1002, 1003, 1004}; // 初始化 // 2.动态初始化 String[] names = new String[5]; // 特别地,类型推断 int[] numbers = { 1, 2, 3}; // √
数组一旦初始化完成,长度就确定了
-
如何调用数组的指定位置的元素
通过下标的方式调用数组的索引从0开始,到(数组的长度-1)结束
-
如何获取数组的长度
数组的属性
.length
-
如何遍历数组
for
循环for (int i = 0; i < arr.length; i++) { // travel }
-
数组元素的默认初始化值
-
数组元素是整型:
0
-
数组元素是浮点型:
0.0
-
数组元素是
char
型:ASCII码的0
或\u0000
,而非字符'0'
-
数组元素是
boolean
型:false
-
数组元素是引用数据类型时:
null
,而非字符串"null"
-
-
数组的内存解析
-
内存简化结构
-
一维数组的内存解析
这里的String元素其实是放在String常量池中,但为了简化问题,故作上图
-
-
-
二维数组的使用
对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。其实,从数组底层的运行机制来看,其实没有多维数组。
-
二维数组的声明和初始化
// 静态初始化 int[][] arr1 = new int[][] { { 1, 2, 3 }, { 1, 3 }, { 1, 5, 4 } }; // 动态初始化1 String[][] arr2 = new String[3][2]; // 动态初始化2 String[][] arr3 = new String[3][]; // 第一维度必须声明,第二维度可以省略
-
调用指定位置的元素
两级下标
-
获取数组的长度
.length
-
遍历二维数组
嵌套
for
循环for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { // travel } }
-
二维数组的默认初始化值
规定:外层元素和内层元素
int[][] arr = new int[3][4]; // 外层元素 arr[0],arr[3] // 内层元素 arr[2][2], arr[3][1]
针对于初始化方式一
int[][] arr = new int[3][4];
- 外层元素的初始化值为:地址值
- 内层元素的初始化值为:与一维数组初始化情况相同
针对于初始化方式二
int[][] arr = new int[3][];
- 外层元素的初始化值为:
null
- 内层元素无法调用,否则发生异常
java.lang.NullPointerException
-
二维数组的内存解析
-