java-learn(2)
顺序结构
按照代码的顺序从上往下去执行代码
分支结构
if语句
if(条件表达式){
语句1;
...
}else if(条件表达式){
语句1;
...
}
else{
语句2;
...
}
// 如果只有一个语句可以直接省略其中的大括号
// 但是如果是定义变量的话就不能省略,因为定义一个变量,相当于执行了两步语句,第一是定义变量,第二是给变量赋值
switch语句
基本语法
switch(条件语句){
case 字面量:
执行语句;
break;
...
default:
执行语句;
break;
}
1.default语句可以可以放在任意位置 也能省略
2.case穿透
如果case中没有break语句,当有符合条件语句的时候,会从这里一直执行 直到遇到break 或者case语句全部执行完
3.switch新特性
这不用写break语句
switch(条件语句){
case 字母量 -> {}
case 字面量 -> {}
case 字面量 -> {}
...
}
小案例
int day = 2;
// Switch表达式 (Java 14+)
String dayType = switch (day) {
case 1, 2, 3, 4, 5 -> "Weekday"; // 使用逗号分隔多个case,直接返回值
case 6, 7 -> "Weekend";
default -> "Invalid day";
}; // 注意这里是以分号结尾的表达式
System.out.println(dayType);
循环结构
for循环语句
for(初始化语句;条件判断语句;条件控制语句){
循环执行语句;
}
while循环语句
初始化语句
while(条件判断语句){
循环执行语句;
条件控制语句;
}
do-while循环语句
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
数组
数组介绍
数组的定义与静态初始化
// 静态初始化数组
// 原始语法: 数据类型[] 数组名 = 数据类型[]{数据1,...};
// 省略语法: 数据类型[] 数组名 = {数据1,...};
int[] a =new int[]{10,12,12,21,10};
String[] arr = new String[]{"张三","王五"};
数组的地址
System.out.println(arr);
// 如果直接打印数组名会出现这个[I@4eec7777 -->
// [:表示是数组的意思
// I表示是int类型 也就是数据类型
// @ 是一个间隔符 固定格式
// @后面的数字就是地址(十六进制)
数组元素访问
数组遍历
arr.length() // 可以求数组的长度
数组动态初始化
//语法
数据类型[] 数组名称 = new 数据类型[初始化长度];
/*
整数类型的数组 默认初始化0
浮点数类型的数组 默认初始化为0.0
(boolean)布尔类型的默认为false
字符类型默认初始化值'\u0000' -> 就是一个空格
引用数据类型默认为null
*/
数组内存图
1.只要是new出来的空间一定是在堆里面开辟了的空间
2.如果new了多次,那么堆中会出现多个小空间,他们各自独立
3.当把数组名直接赋值给另一个数组,那么这两个数组就指向同一个空间,修改一个数组中的值,另一个数组的值夜随之被修改。
数组的常见问题
数组越界访问
数组常见操作
二维数组
静态定义方式:
数据类型[][] 数组名 = new 数据类型[][]{{...},{...},...};
动态定义方式:
第一种方式:
数据类型[][] 数组名 = new 数据类型[n][m];
第二种方式:
int[][] arr = new int[2][];
arr[0] = new int[]{1,2,3,4};
arr[1] = new int[]{12,5,6,7};
方法
什么是方法
方法是程序执行的最小单元
方法的格式
最简单的方法定义与调用
// 定义
public static void 方法名(){
方法执行语句;
};
// 调用
方法名();
带参数的方法定义与调用
方法的定义
public static void 方法名(参数类型 参数名,参数类型 参数名,....){
方法执行语句;
};
方法的调用
方法名(参数名,参数名,...);
注意: 调用方法的时候传入的参数要和接受的一 一对应,否则会报错
带放回值的方法定义
public static 返回类型 方法名(参数类型 参数名){
方法执行语句;
return 返回值;
}
返回类型 变量 = 方法名(参数名);
方法的重载
定义: 同一个类中,方法名相同,参数不同,与返回值无关
参数不同:类型不同,个数不同,顺序不同
方法的内存
方法调用的基本内存原理
采用栈的原理,把先进后出的原理,把要执行的方法押进栈中
方法传递基本数据类型的内存原理
基本数据类型:整数类型,小数类型,字符类型,布尔类型;数据值是储存在自己的空间中
特点:赋值给其它变量,也是赋的真实的值
引用数据类型:就是除了上面的类型之外的数据类型;数据值是粗存在其它空间中,自己空间储存的是地址值
赋值时是把别人的地址赋值给它,如果改变他的值,其它指向这块地址的变量也会随之改变。
特点:赋值给其它变量,赋的地址值
方法传递引用数据类型的内存原理
基本数据类型通过方法传入到另一个方法中,在另一个方法中改变这个数据,在原方法中的实参是不会受到影响的
引用数据类型传入的是地址,所以在另一个方法中,修改数据,实参会受到影响
方法综合练习
随机生成五位验证码 要求:前面四个由小写或者大写字母组成,后面以为由一个数字构成
import java.util.Random;
public class function {
public static void main(String[] args) {
Random r =new Random();
String s = "";
for(int i = 0;i < 4;i++){
int temp = r.nextInt(52);
if(temp <= 25) s += (char)(temp+'a');
else s += (char)(temp-26+'A');
}
s += r.nextInt(10);
System.out.print(s);
}
}
快捷键:shift+F6 全部替换
更多推荐



所有评论(0)