switch语句
1.switch语句的表达式只能是:byte short int char String 枚举类型
2.case语句后,要跟的必须和表达式所表示的类型一致,并且必须是常量,不能是变量
3.每一个case中都要视具体业务逻辑而定,如果该分支执行结束,那么应当添加break语句,
如果没有break语句,那么会发生case穿透(有时候可以利用穿透)
4.switch语句结束的标志:①遇到break语句,整个switch语句结束
②当遇到右大括号时,switch语句也会结束
5.default语句最好写在最后,虽然default情况写在任何位置都会最后再去被匹配
循环结构
for语句
嵌套循环
格式:
for ( 初始化语句1; 条件表达式1; 初始化变量1的自增) {
for ( 初始化语句2 ; 条件表达式2 ; 初始化变量2的自增 ) {
循环体语句;
}
}
外层循环变化慢,内层循环变化快
三种循环语句的区别
1、dowhile语句和其他两种语句的区别:
dowhile语句至少可以执行一次,另外两种有可能一次都执行不了
2、while语句和for的区别:
1、代码层面:while语句声明的初始化变量,在while结束之后,还能继续使用;
for中声明的初始化变量,在for结束之后,就无法使用了。
2、设计层面:while语句一般用于描述相对模糊的范围,其他的条件;
for用于描述相对准确,知道循环次数的循环
死循环
格式:
1、for语句的死循环:
for ( ; ; ) {
循环体语句;
}
2、while语句的死循环:【常用】
while (true) {
循环体语句;
}
3、死循环的作用:
1、在格式上使用了死循环,但是在循环体中,可能出现了需要循环结束的情况,准备了一些跳出、终止循环的跳转语句。
2、在服务器的设计中,希望服务器永远给我们服务下去,所以需要使用死循环。
跳转语句
1、跳转语句:在循环的循环体语句中,结束循环,控制循环,使用的语句。
2、continue语句:
结束本次循环,继续下次循环
3、break语句:
结束当前层次的循环,例如嵌套,它结束的是当前这一层的循环,外层的不会结束。break在那个层次,结束的就是哪个层次的循环
4、return语句:
结束当前的方法
5、System.exit(0);
用于结束虚拟机
随机数
1、概述
Java中提供了Math类中的random()方法,用来生成一个0到1之间的随机数 [0,1)
另外Java通过了一个Random类专门用来生成随机数。
2、使用方式
Math 类 :
double x = Math.random();
产生一个0到1之间的随机数,包括0,不包括1。
Random类:
- 创建实例格式:Random 变量名 = new Random();
- import导包:所属包java.util.Random;
- 调用方法int number = r.nextInt(10);// [0,10) 产生的数据在0到10之间,包括0,不包括10。
使用Math.random()生成 10 到20 之间的随机数(包含20)
int num = (int)(Math.random() * 10) + 10;
使用Random获取0-10之间的随机数(包括0,不包括10)
//1.创建random类型的对象
Random r = new Random();
//2.通过random类型来调用生成随机数的方法
System.out.println(r.nextInt(10));
获取1-100之间的随机数(包括1,不包括100)
//1.创建random类型的对象
Random r = new Random();
//2.通过random类型来调用生成随机数的方法
System.out.println(r.nextInt(100) + 1);
方法
方法的注意事项:
- 方法不能嵌套定义,方法都是定义在主方法的下面。
- 方法定义的先后没有区别
- 方法的定义是平级关系
- 方法可以嵌套调用,甚至可以自己调用自己
方法的重载
1、重载:Overload,超载
2、方法的重载:
在同一个类中,方法名相同,参数列表不同,与返回值类型无关
3、说明:
1、 **在同一个类中。**不同无关类中,不可能发生方法的重载的。
2、方法名称相同:一模一样。
3、参数列表不同:参数类型不同;参数个数不同;参数类型的顺序不同;
参数的名称不同(不算)
4、**与返回值类型无关。**方法是否是重载,与返回值类型没有关系。
如果方法的名称和参数列表都一样,即使返回值类型不同,也不算重载,属于方法 的重复定义。
数组
数组的内存理解
Jvm内存的划分
两个引用指向同一个数组
1、引用:
称数据的地址,为引用
存储引用的变量,称为引用数据类型的变量
2、两个引用指向了同一个数组:
任意一个引用修改了数组中的内容
另外一个数组也能访问到修改了的数据
3、图示: