一、switch
1.格式
switch(变量key) {
case 常量1 : 语句体1;
break;
case 常量2 : 语句体2;
break;
...
default : 语句体n+1;
}
2.格式说明:
1)case:后面的值是要和变量key(常量也可以,但是没意义)进行匹配的常量
2)常量:可以是byte、short、int、char、枚举(自JDK5后)、字符串(自JDK7后),不能重复
3)break:表示程序到这里中断,跳出switch语句;可以省略,但会出现case穿透。
4)default:如果所有的情况都不匹配,就执行这里(任意位置),相当于if语句中的else;可以省略,但是不建议
5)switch语句的结束条件
A:遇到break就结束了
B:执行到末尾就结束了
二、控制跳转关键字
1.break:中断
1)用于循环和switch
2) 作用
A:跳出单层循环
B:跳出多层循环,需要标签语句的配合
标签语句例子:
outer:for(int i=0;i<5;i++){
inner:for(int j=0;j<5;j++){
if(j==3){
break outer;//直接中断外循环
}
}
}
2.continue:继续
1)用于循环
2)作用:跳出单层循环的一次,可以继续下一次
3.return:返回(结束当前方法的调用)
三、数组
1.描述
1)数组:存储多个相同类型数据的集合。
2)特点:数组中每个元素都有编号,从0开始,最大编号是长度-1,该编号称为索引。
3)定义格式
A:数据类型[] 数组名;(推荐)
B:数据类型 数组名[];
4)数组的初始化
A:动态初始化
只给长度,系统给出默认值
举例:int[] arr = new int[3];
B:静态初始化
给出值,系统决定长度
举例:int[] arr = new int[]{1,2,3};
简化版:int[] arr = {1,2,3};
5)Java的内存分配
A:栈 存储局部变量
B:堆 存储所有new出来的
C:方法区
D:本地方法区(系统相关)
E:寄存器(CPU使用)
注意:
a:局部变量 在方法中定义或者方法声明上定义的变量。
b:栈内存和堆内存的区别
栈:数据使用完毕,就消失。
堆:每一个new出来的东西都有地址
每一个变量都有默认值
类型 | 默认值 |
byte,short,int,long | 0 |
float,double | 0.0 |
char | 0 |
boolean | '\u0000' |
引用类型 | null |
数据使用完毕后,在垃圾回收器空闲的时候回收
2.内存图





3.二维数组
1)元素是一维数组的数组。
2)格式:
A:数据类型[][] 数组名 = new 数据类型[m][n];
B:数据类型[][] 数组名 = new 数据类型[m][];
C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};
D:数据类型[][] 数组名 = {{...},{...},{...}};
3)案例
A:二维数组的遍历
B:二维数组的求和
C:杨辉三角形
4)二维数组的内存图



4.补充
Java中的参数传递问题 —— Java中只有值传递。
基本类型:形式参数的改变不影响实际参数
引用类型:形式参数的改变直接影响实际参数(String除外)
笔记整理自传智。