返回首页

day1-5

2009 字 10 分钟

day1#

Terminal window
int a = 7 / 2;
double b = 7 / 2;
这里先计算为3,然后再变为 double 3.0
double c = 7 / 2.0;
这里运算数有小数,直接3.5
int age = 20;
boolean isAdult = age >= 18;
这里后边 == 是判断是否相等的
这里 boolean 的赋值
System.out.println("是否成年:" + isAdult);
Java 中使用 + 来连接
System.out.println(5 + 2 + "Java");
7Java
System.out.println("Java" + 5 + 2);
Java52
Java 源代码(.java)
javac 编译
Java 字节码(.class)
JVM 执行
程序运行

day2#

Terminal window
最开头
import java.util.Scanner;
创建
Scanner scanner = new Scanner(System.in);
最末尾
`Scanner` 使用了输入资源。小程序结束时,通常可以写:
scanner.close();
if
后端开发用途
以后会在后端项目中用它判断:
- 用户名和密码是否正确
- 用户有没有操作权限
- 参数是否有效
- 数据是否存在
- 任务是否已经完成
switch
适合根据一个变量的不同确定值,执行不同操作
switch if 的选择
- 判断具体固定值:优先考虑 `switch`
- 判断范围:通常使用 `if / else if`
- 判断多个复杂条件:通常使用 `if / else`
所以成绩范围适合 `if`,任务状态编号适合 `switch`
实际后端项目经常需要处理订单状态、任务状态和用户角色。以后学习枚举后,会使用枚举进一步管理这些状态。
switch(status){
case1:
语句
break;
case2:
default:
}
综合条件判断
1. && ||
!取反
2. 字符串内容比较,字符串内容不要使用 `==`,应该使用 `equals()`:![[Pasted image 20260906170657.png]]
```实际开发用途
后端登录流程通常需要同时判断多个条件:
用户名 correct?
and
Password correct
wrong user versus wrong password

day3#

Terminal window
循环
嵌套循环在普通业务代码中没有集合遍历常见,但它能训练执行顺序和逻辑分析能力
实际开发用途
后面会使用循环:
- 处理多名学生的成绩
- 遍历数据库查询结果
- 批量处理任务
- 计算统计结果
- 检查一组数据
`while` 通常适合不知道需要执行多少次,只知道结束条件的情况:正确的循环通常需要让某些数据逐渐接近结束条件。
后端开发用途
真实 REST API 通常会直接拒绝一次无效请求,而不是在服务器中等待用户反复输入。不过 `while` 仍然会用于:
- 持续处理消息
- 重试某项操作
- 批量读取数据
- 任务调度
- 满足条件前持续处理
- `while`:可能一次都不执行
- `do-while`:至少执行一次
break continue
实际开发用途
`break` 常用于:
- 找到目标数据后停止查找
- 达到处理上限后停止
- 满足退出条件后结束循环
`continue` 常用于:
- 跳过无效数据
- 跳过不符合条件的记录
- 只处理需要的数据
循环嵌套
- 外层循环控制有多少行
- 内层循环控制每行执行多少次
执行体在内循环中
`break` 结束当前所在的最近一层循环,而不一定结束程序中的所有循环。
后端开发用途
嵌套循环可能用于:
- 比较两组数据
- 处理表格中的行和列
- 生成组合
- 检查重复关系
`for` 把初始化、循环条件和更新操作集中写在一处,因此次数明确时通常更紧凑。
- `continue`:跳过本轮尚未执行的代码,进入下一次条件判断。
- `break`:立即结束当前所在的最近一层循环。
`while` 中使用 `continue` 时,要确保控制循环的变量仍然能够更新。

day4#

Terminal window
数组
【开发必须掌握】
- 数组的声明、创建和访问
- 索引与长度
- 使用循环遍历数组
- 避免数组越界
- 把代码封装进方法
`array.length` 和字符串相关方法的区别
数组长度
System.out.println(scores.length);
因此访问最后一项可以写:
scores[scores.length - 1]
注意数组使用属性:
scores.length
这里没有括号。
常见数组用法:查找最大最小值
条件计数 查找指定元素
数组
Java的二维数组本质上是“数组里面放数组”,不同的行甚至可以拥有不同长度
遍历时,内层条件推荐写:
column < scoreTable[row].length
for (int row = 0; row < scoreTable.length; row++) {
for (int column = 0; column < scoreTable[row].length; column++)
scoreTable[row].length表示第row行的列数
row column
方法基础
方法不只能在 `main` 中调用,也可以在其他方法中调用;方法定义在类体中、不能嵌套在另一个方法里。
int[][] data = {
{10, 20, 30},
{40, 50},
{60, 70, 80, 90}
};
data[0].length
遍历内层数组时,为什么应该使用 `data[row].length`,而不是固定使用 `data[0].length`
并不会让程序只遍历第一行。外层循环仍然经过所有行,但它会把第一行的长度3错误地用于每一行:
- 遍历第二行时尝试访问索引2,第二行只有索引0、1,因此越界。
- 遍历第三行时只处理前三项,漏掉最后的90。
所以内层循环应该使用:
column < data[row].length

day5#

Terminal window
数组初始化,int[] score=new int[num];
或者int[] score = {, }
今天学习:
- 方法参数
- 方法返回值
- 方法重载
- 变量作用域
- Java基础综合练
- 第一阶段阶段测试
【开发必须掌握】
- 把数据传入方法
- 从方法取得计算结果
- 正确设计方法职责
- 判断变量在哪里可以使用
【面试高频】
- 参数和返回值的作用
- 方法重载的判断条件
- 局部变量的作用域
- Java是值传递还是引用传递——后续再深入
模块一:方法参数
4. 为什么需要参数
没有参数时,一个方法只能处理固定数据。
有参数后,同一个方法可以处理:
- 不同学生
- 不同成绩
- 不同任务编号
- 不同用户输入
实际后端中常见的形式:
Controller把请求参数传给Service方法
Service把查询条件传给数据库方法
模块二:方法返回值
`return` 的核心优势不是决定“什么时候调用”,而是调用者能保存结果,并继续判断、计算、组合或选择如何显示
模块三:方法重载
什么是方法重载
在同一个类中,可以定义多个同名方法,但它们的参数列表必须不同。
为什么需要重载
多个方法完成相似任务时,可以使用统一的方法名:
实际后端中可能出现:
根据数字ID查询用户
根据用户名查询用户
可以通过以下方式重载:
- 参数数量不同
- 参数类型不同
- 参数类型顺序不同
只改变参数名,不算重载:
只改变返回值类型,也不算重载:
Java 会根据调用时传入的参数选择对应方法。
Java判断方法重载主要看方法名和参数列表。返回值类型不参与重载判断。如果两个方法都是 `calculateTotal(int, int)`,即使一个返回 `int`、另一个返回 `double`,参数列表仍然相同,编译器无法区分,因此会报方法重复定义。
变量作用域
`return` 可以把计算结果交给调用者,但不一定必须用变量接收,也可以直接输出:
使用变量接收的好处是之后还能继续计算、判断或多次使用。

1-5#

Scanner 是一个类,scanner 变量保存的是对象的引用:

Scanner scanner = new Scanner(System.in);

可以分成四部分理解:

Scanner scanner new Scanner(System.in)
变量的类型 变量名 创建对象 调用构造方法

为什么数组需要 new 即使数组中保存的是 int,数组整体仍然属于引用类型:

int[] scores = new int[10];
  • int[] scores:声明一个整数数组变量。
  • new int[10]:真正创建一个包含10个位置的数组。
day1-5
https://335264.xyz/posts/day1/
作者
刺儿菜
发布于
2026-09-07
许可协议
CC BY-NC-SA 4.0
Comments

评论