Java程序设计基础章节学习总结:从标识符到流程控制的全面梳理
·
1. 引言
Java作为一门面向对象的编程语言,其基础知识是构建复杂程序的基石。本文将对Java程序设计基础章节的核心内容进行系统梳理,涵盖标识符、注释、变量、数据类型转换、各类运算符以及流程控制语句,旨在帮助初学者建立清晰的知识框架,避免常见错误。
2. 标识符与命名规范
2.1 标识符定义
标识符是程序中变量、方法、类、接口等元素的名称。Java标识符必须遵循以下规则:
- 由字母、数字、下划线(_)和美元符号($)组成
- 不能以数字开头
- 不能是Java关键字(如
int、class、public等) - 区分大小写
2.2 命名规范(行业约定)
- 类名:大驼峰命名法(PascalCase),如
StudentInfo - 方法名和变量名:小驼峰命名法(camelCase),如
getUserName - 常量名:全大写,单词间用下划线分隔,如
MAX_VALUE - 包名:全小写,如
com.example.util
2.3 新手易错点
- ❌ 使用中文或特殊字符(如
@、#)作为标识符 - ❌ 使用关键字作为标识符(如
int class = 10;) - ❌ 命名过于简单(如
a、b、c),缺乏描述性 - ✅ 建议:使用有意义的英文单词,如
studentAge而非sa
3. 注释的使用
3.1 注释类型
// 单行注释:适用于简短说明
/*
* 多行注释:适用于较长的说明
* 可以跨越多行
*/
/**
* 文档注释:用于生成API文档
* @param name 用户名
* @return 欢迎信息
*/
public String welcome(String name) {
return "Hello, " + name; // 字符串拼接,返回欢迎信息
}
3.2 注释最佳实践
- 解释为什么,而不是是什么:代码本身应该清晰表达"是什么"
- 及时更新:修改代码时同步更新注释
- 避免过度注释:清晰的代码是最好的注释
3.3 新手易错点
- ❌ 注释与代码逻辑不一致
- ❌ 使用无意义的注释(如
// 设置变量) - ❌ 忘记关闭多行注释,导致后续代码被注释
4. 变量与数据类型
4.1 变量声明与初始化
// 声明变量
int age;
String name;
// 声明并初始化
int score = 95;
double price = 19.99;
boolean isPassed = true;
char grade = 'A';
// 同时声明多个变量
int x = 1, y = 2, z = 3;
4.2 基本数据类型
| 类型 | 大小 | 取值范围 | 默认值 | 示例 |
|---|---|---|---|---|
| byte | 1字节 | -128 ~ 127 | 0 | byte b = 100; |
| short | 2字节 | -32768 ~ 32767 | 0 | short s = 1000; |
| int | 4字节 | -2³¹ ~ 2³¹-1 | 0 | int i = 100000; |
| long | 8字节 | -2⁶³ ~ 2⁶³-1 | 0L | long l = 100000L; |
| float | 4字节 | 约±3.4e38 | 0.0f | float f = 3.14f; |
| double | 8字节 | 约±1.8e308 | 0.0d | double d = 3.14159; |
| char | 2字节 | 0 ~ 65535 | ‘\u0000’ | char c = 'A'; |
| boolean | 1位 | true/false | false | boolean flag = true; |
4.3 引用数据类型
- 类:如
String、Scanner - 接口:如
List、Map - 数组:如
int[]、String[]
4.4 新手易错点
- ❌ 未初始化变量就直接使用(局部变量)
- ❌ 混淆
=(赋值)和==(相等比较) - ❌ 整数除法问题:
int result = 5 / 2;// 结果是2,不是2.5 - ❌ 大数溢出:
int max = Integer.MAX_VALUE + 1;// 变成最小值
5. 数据类型转换
5.1 自动类型转换(隐式转换)
小范围类型 → 大范围类型,编译器自动完成:
byte b = 10;
int i = b; // 自动转换
float f = 3.14f;
double d = f; // 自动转换
char c = 'A';
int ascii = c; // 自动转换,A的ASCII码是65
5.2 强制类型转换(显式转换)
大范围类型 → 小范围类型,需要显式转换,可能丢失精度:
int i = 300;
byte b = (byte)i; // 强制转换,可能溢出
double d = 3.14159;
int i = (int)d; // 强制转换,结果为3,丢失小数部分
float f = 3.14f;
int i = (int)f; // 结果为3
5.3 新手易错点
- ❌ 忘记强制转换导致编译错误
- ❌ 强制转换时数据溢出未处理
- ❌ 混淆
(int)3.14和Math.round(3.14)的区别 - ❌ 字符串转数字时未处理异常:
Integer.parseInt("abc");
6. 运算符详解
6.1 算术运算符
int a = 10, b = 3;
System.out.println(a + b); // 13,加法
System.out.println(a - b); // 7,减法
System.out.println(a * b); // 30,乘法
System.out.println(a / b); // 3,除法(整数除法)
System.out.println(a % b); // 1,取模(余数)
// 自增自减
int x = 5;
System.out.println(x++); // 5(先使用后增加)
System.out.println(x); // 6
System.out.println(++x); // 7(先增加后使用)
6.2 关系运算符
int a = 10, b = 20;
System.out.println(a == b); // false,等于
System.out.println(a != b); // true,不等于
System.out.println(a > b); // false,大于
System.out.println(a < b); // true,小于
System.out.println(a >= b); // false,大于等于
System.out.println(a <= b); // true,小于等于
6.3 逻辑运算符
boolean x = true, y = false;
System.out.println(x && y); // false,逻辑与(两个都为真才为真)
System.out.println(x || y); // true,逻辑或(一个为真就为真)
System.out.println(!x); // false,逻辑非
// 短路特性
int a = 10;
if (a > 5 || a++ > 0) { // 第一个条件为真,第二个不执行
System.out.println(a); // 输出10,a++未执行
}
6.4 赋值运算符
int a = 10;
a += 5; // a = a + 5,结果为15
a -= 3; // a = a - 3,结果为12
a *= 2; // a = a * 2,结果为24
a /= 4; // a = a / 4,结果为6
a %= 4; // a = a % 4,结果为2
6.5 三元运算符
int score = 85;
String result = (score >= 60) ? "及格" : "不及格";
System.out.println(result); // 输出"及格"
6.6 位运算符(了解即可)
int a = 5; // 二进制 0101
int b = 3; // 二进制 0011
System.out.println(a & b); // 1(按位与:0001)
System.out.println(a | b); // 7(按位或:0111)
System.out.println(a ^ b); // 6(按位异或:0110)
System.out.println(~a); // -6(按位取反)
System.out.println(a << 1); // 10(左移1位:1010)
System.out.println(a >> 1); // 2(右移1位:0010)
6.7 运算符优先级
从高到低:
()括号++--!~一元运算符*/%乘除模+-加减<<>>>>>移位<<=>>=instanceof关系==!=相等&按位与^按位异或|按位或&&逻辑与||逻辑或?:三元=+=-=等赋值
6.8 新手易错点
- ❌ 混淆
=和==:if (a = 5)应该是if (a == 5) - ❌ 整数除法问题:
5 / 2结果是2,不是2.5 - ❌ 忽略运算符优先级:
a + b * c不等于(a + b) * c - ❌ 自增自减的前后区别理解不清
7. 流程控制语句
7.1 if语句
// 基本if
int score = 85;
if (score >= 60) {
System.out.println("及格");
}
// if-else
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
// 嵌套if
if (score >= 60) {
if (score >= 80) {
System.out.println("可以评优");
}
}
7.2 switch语句
int day = 3;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
case 7:
System.out.println("周末");
break;
default:
System.out.println("无效的日期");
}
// Java 12+ 新语法(了解)
String result = switch (day) {
case 1, 2, 3, 4, 5 -> "工作日";
case 6, 7 -> "周末";
default -> "无效";
};
7.3 for循环
// 基本for循环
for (int i = 0; i < 5; i++) {
System.out.println("i = " + i);
}
// 嵌套循环(打印九九乘法表)
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "×" + i + "=" + (i * j) + "\t");
}
System.out.println();
}
// 增强for循环(foreach)
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
7.4 while循环
// while循环
int count = 0;
while (count < 5) {
System.out.println("count = " + count);
count++;
}
// do-while循环(至少执行一次)
int num = 0;
do {
System.out.println("num = " + num);
num++;
} while (num < 3);
7.5 循环控制语句
// break:跳出整个循环
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 当i等于5时跳出循环
}
System.out.println(i); // 输出0-4
}
// continue:跳过本次循环,继续下一次
for (int i = 0; i < 5; i++) {
if (i == 2) {
continue; // 跳过i=2的这次循环
}
System.out.println(i); // 输出0,1,3,4
}
// 带标签的break(跳出多层循环)
outer:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == 1 && j == 1) {
break outer; // 跳出外层循环
}
System.out.println("i=" + i + ", j=" + j);
}
}
7.6 新手易错点
- ❌ if语句:忘记写花括号
{},导致只有第一句受if控制 - ❌ switch语句:忘记写
break,导致case穿透 - ❌ for循环:死循环
for (int i = 0; i < 10; i--) - ❌ while循环:忘记更新循环条件,导致死循环
- ❌ 在循环内修改循环变量导致逻辑混乱
8. 综合示例与易错点总结
8.1 综合示例:成绩评级系统
import java.util.Scanner;
public class GradeSystem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入学生成绩(0-100):");
int score = scanner.nextInt();
// 数据验证
if (score < 0 || score > 100) {
System.out.println("成绩无效!请输入0-100之间的数字。");
return;
}
// 成绩评级
String grade;
if (score >= 90) {
grade = "A";
} else if (score >= 80) {
grade = "B";
} else if (score >= 70) {
grade = "C";
} else if (score >= 60) {
grade = "D";
} else {
grade = "F";
}
// 使用switch输出评价
switch (grade) {
case "A":
System.out.println("优秀!继续保持!");
break;
case "B":
System.out.println("良好!还有提升空间。");
break;
case "C":
System.out.println("中等!需要更加努力。");
break;
case "D":
System.out.println("及格!要加油了。");
break;
case "F":
System.out.println("不及格!需要重点补习。");
break;
}
// 使用for循环打印成绩趋势(假设有5次考试)
System.out.println("\n最近5次考试成绩趋势:");
int[] recentScores = {85, 78, 92, 65, score};
for (int i = 0; i < recentScores.length; i++) {
System.out.println("第" + (i + 1) + "次:" + recentScores[i] + "分");
}
scanner.close();
}
}
8.2 十大常见错误总结
- 变量未初始化:局部变量使用前必须初始化
- 整数除法:
5 / 2 = 2,不是2.5 - if条件赋值:
if (a = 5)应该是if (a == 5) - switch忘记break:导致case穿透
- 死循环:循环条件永远为真
- 数组越界:访问
arr[arr.length] - 字符串比较用==:应该用
equals() - 浮点数精确比较:应该用误差范围比较
- 大数溢出:
int max = Integer.MAX_VALUE + 1 - 资源未关闭:如Scanner、文件流等
9. 学习建议与总结
9.1 学习建议
- 多动手实践:理论知识必须通过代码实践来巩固
- 善用调试工具:学会使用IDE的调试功能排查问题
- 理解内存模型:了解栈、堆的区别,理解值传递和引用传递
- 培养代码规范:从开始就养成良好的编码习惯
- 学会查阅文档:官方A
10. 实战练习题
本章提供一系列编程练习题,涵盖变量、运算符、流程控制等核心知识点。每道题包含题目描述、解题思路提示和参考答案(可折叠查看)。建议先独立完成,再对照参考答案。
10.1 基础计算器
题目描述:
编写一个Java程序,实现一个简单的四则运算计算器。程序要求:
- 从控制台接收两个整数和一个运算符(+、-、*、/)
- 根据运算符进行相应的计算
- 输出计算结果
- 考虑除数为0的情况
解题思路提示:
- 使用
Scanner类获取用户输入 - 使用
switch语句或if-else判断运算符 - 除法运算前检查除数是否为0
- 注意整数除法的结果可能丢失小数部分
import java.util.Scanner;
public class BasicCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个整数: ");
int num1 = scanner.nextInt();
System.out.print("请输入运算符(+, -, *, /): ");
char operator = scanner.next().charAt(0);
System.out.print("请输入第二个整数: ");
int num2 = scanner.nextInt();
int result = 0;
boolean validOperation = true;
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if (num2 != 0) {
result = num1 / num2; // 整数除法
} else {
System.out.println("错误:除数不能为0!");
validOperation = false;
}
break;
default:
System.out.println("错误:不支持的运算符!");
validOperation = false;
}
if (validOperation) {
System.out.println("计算结果: " + num1 + " " + operator + " " + num2 + " = " + result);
}
scanner.close();
}
}
10.2 成绩等级判断
题目描述:
编写一个Java程序,根据输入的百分制成绩输出相应的等级:
- 90分及以上:优秀
- 80-89分:良好
- 70-79分:中等
- 60-69分:及格
- 60分以下:不及格
要求:
- 成绩范围在0-100之间,输入错误时给出提示
- 使用
if-else if-else结构实现 - 考虑使用
switch语句的另一种实现方式
解题思路提示:
- 先验证输入是否在有效范围内
- 使用整数除法将成绩除以10,简化判断逻辑
- 注意边界条件的处理
import java.util.Scanner;
public class GradeJudgment {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入成绩(0-100): ");
int score = scanner.nextInt();
if (score < 0 || score > 100) {
System.out.println("错误:成绩必须在0-100之间!");
} else {
// 方法1:使用if-else if-else
System.out.print("方法1判断结果: ");
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 70) {
System.out.println("中等");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
// 方法2:使用switch(将成绩除以10简化判断)
System.out.print("方法2判断结果: ");
int level = score / 10;
switch (level) {
case 10:
case 9:
System.out.println("优秀");
break;
case 8:
System.out.println("良好");
break;
case 7:
System.out.println("中等");
break;
case 6:
System.out.println("及格");
break;
default:
System.out.println("不及格");
}
}
scanner.close();
}
}
10.3 打印特定图形
题目描述:
编写一个Java程序,根据用户输入的数字n,打印以下两种图形:
图形1:直角三角形
*
**
***
****
*****
图形2:等腰三角形
*
***
*****
*******
*********
要求:
- 使用嵌套循环实现
- 图形1使用
for循环,图形2使用while循环 - 考虑代码的可复用性
解题思路提示:
- 外层循环控制行数,内层循环控制每行的星号数量
- 等腰三角形需要先打印空格,再打印星号
- 空格数量 = 总行数 - 当前行数
- 星号数量 = 2 × 当前行数 - 1
import java.util.Scanner;
public class PatternPrinter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入行数n: ");
int n = scanner.nextInt();
System.out.println("\n图形1:直角三角形");
printRightTriangle(n);
System.out.println("\n图形2:等腰三角形");
printIsoscelesTriangle(n);
scanner.close();
}
// 打印直角三角形(使用for循环)
public static void printRightTriangle(int n) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
// 打印等腰三角形(使用while循环)
public static void printIsoscelesTriangle(int n) {
int i = 1;
while (i <= n) {
// 打印空格
int spaces = n - i;
int j = 1;
while (j <= spaces) {
System.out.print(" ");
j++;
}
// 打印星号
int stars = 2 * i - 1;
j = 1;
while (j <= stars) {
System.out.print("*");
j++;
}
System.out.println();
i++;
}
}
}
10.4 数字特征判断
题目描述:
编写一个Java程序,实现以下功能:
- 判断一个整数是否是偶数
- 判断一个整数是否是质数(素数)
- 计算一个整数的各位数字之和
- 判断一个整数是否是回文数(正读反读都一样)
要求:
- 每个功能封装成独立的方法
- 主程序提供菜单让用户选择功能
- 使用合适的循环和条件语句
解题思路提示:
- 偶数判断:
num % 2 == 0 - 质数判断:从2到√n检查是否有因数
- 数字求和:使用
while循环和取模运算 - 回文数判断:将数字反转后比较
import java.util.Scanner;
public class NumberFeatures {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("\n=== 数字特征判断 ===");
System.out.println("1. 判断偶数");
System.out.println("2. 判断质数");
System.out.println("3. 计算各位数字之和");
System.out.println("4. 判断回文数");
System.out.println("0. 退出");
System.out.print("请选择功能(0-4): ");
int choice = scanner.nextInt();
if (choice == 0) {
System.out.println("程序结束,谢谢使用!");
break;
}
System.out.print("请输入一个整数: ");
int num = scanner.nextInt();
switch (choice) {
case 1:
if (isEven(num)) {
System.out.println(num + " 是偶数");
} else {
System.out.println(num + " 不是偶数");
}
break;
case 2:
if (isPrime(num)) {
System.out.println(num + " 是质数");
} else {
System.out.println(num + " 不是质数");
}
break;
case 3:
int sum = sumOfDigits(num);
System.out.println(num + " 的各位数字之和为: " + sum);
break;
case 4:
if (isPalindrome(num)) {
System.out.println(num + " 是回文数");
} else {
System.out.println(num + " 不是回文数");
}
break;
default:
System.out.println("无效的选择,请重新输入!");
}
}
scanner.close();
}
// 判断偶数
public static boolean isEven(int num) {
return num % 2 == 0;
}
// 判断质数
public static boolean isPrime(int num) {
if (num <= 1) return false;
if (num == 2) return true;
if (num % 2 == 0) return false;
for (int i = 3; i <= Math.sqrt(num); i += 2) {
if (num % i == 0) {
return false;
}
}
return true;
}
// 计算各位数字之和
public static int sumOfDigits(int num) {
int sum = 0;
int temp = Math.abs(num); // 处理负数
while (temp > 0) {
sum += temp % 10;
temp /= 10;
}
return sum;
}
// 判断回文数
public static boolean isPalindrome(int num) {
if (num < 0) return false;
int original = num;
int reversed = 0;
while (num > 0) {
int digit = num % 10;
reversed = reversed * 10 + digit;
num /= 10;
}
return original == reversed;
}
}
10.5 综合应用:简易银行账户系统
题目描述:
设计一个简易的银行账户管理系统,包含以下功能:
- 开户:创建新账户,设置初始余额
- 存款:向指定账户存入金额
- 取款:从指定账户取出金额(需检查余额是否充足)
- 查询余额:显示指定账户的当前余额
- 退出系统
要求:
- 使用类来封装账户信息(账户号、户名、余额)
- 使用数组或集合管理多个账户
- 使用
do-while循环实现主菜单 - 进行必要的输入验证
解题思路提示:
- 创建
BankAccount类,包含属性:accountNumber、accountName、balance - 使用
ArrayList<BankAccount>存储账户列表 - 每个功能封装成独立的方法
- 取款时检查余额是否足够
import java.util.ArrayList;
import java.util.Scanner;
class BankAccount {
private String accountNumber;
private String accountName;
private double balance;
public BankAccount(String accountNumber, String accountName, double initialBalance) {
this.accountNumber = accountNumber;
this.accountName = accountName;
this.balance = initialBalance;
}
public String getAccountNumber() {
return accountNumber;
}
public String getAccountName() {
return accountName;
}
public double getBalance() {
return balance;
}
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
System.out.println("存款成功!当前余额: " + balance);
} else {
System.out.println("存款金额必须大于0!");
}
}
public boolean withdraw(double amount) {
if (amount > 0 && amount <= balance) {
balance -= amount;
System.out.println("取款成功!当前余额: " + balance);
return true;
} else if (amount > balance) {
System.out.println("余额不足!当前余额: " + balance);
return false;
} else {
System.out.println("取款金额必须大于0!");
return false;
}
}
public void displayInfo() {
System.out.println("账户号: " + accountNumber);
System.out.println("户名: " + accountName);
System.out.println("余额: " + balance);
}
}
public class SimpleBankSystem {
private static ArrayList<BankAccount> accounts = new ArrayList<>();
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int choice;
do {
System.out.println("\n=== 简易银行账户系统 ===");
System.out.println("1. 开户");
System.out.println("2. 存款");
System.out.println("3. 取款");
System.out.println("4. 查询余额");
System.out.println("5. 显示所有账户");
System.out.println("0. 退出");
System.out.print("请选择操作(0-5): ");
choice = scanner.nextInt();
scanner.nextLine(); // 消耗换行符
switch (choice) {
case 1:
createAccount();
break;
case 2:
deposit();
break;
case 3:
withdraw();
break;
case 4:
checkBalance();
break;
case 5:
displayAllAccounts();
break;
case 0:
System.out.println("感谢使用,再见!");
break;
default:
System.out.println("无效的选择,请重新输入!");
}
} while (choice != 0);
scanner.close();
}
private static void createAccount() {
System.out.print("请输入账户号: ");
String accountNumber = scanner.nextLine();
System.out.print("请输入户名: ");
String accountName = scanner.nextLine();
System.out.print("请输入初始余额: ");
double initialBalance = scanner.nextDouble();
// 检查账户号是否已存在
for (BankAccount account : accounts) {
if (account.getAccountNumber().equals(accountNumber)) {
System.out.println("账户号已存在!");
return;
}
}
BankAccount newAccount = new BankAccount(accountNumber, accountName, initialBalance);
accounts.add(newAccount);
System.out.println("开户成功!");
newAccount.displayInfo();
}
private static BankAccount findAccount(String accountNumber) {
for (BankAccount account : accounts) {
if (account.getAccountNumber().equals(accountNumber)) {
return account;
}
}
return null;
}
private static void deposit() {
System.out.print("请输入账户号: ");
String accountNumber = scanner.nextLine();
BankAccount account = findAccount(accountNumber);
if (account == null) {
System.out.println("账户不存在!");
return;
}
System.out.print("请输入存款金额: ");
double amount = scanner.nextDouble();
scanner.nextLine(); // 消耗换行符
account.deposit(amount);
}
private static void withdraw() {
System.out.print("请输入账户号: ");
String accountNumber = scanner.nextLine();
BankAccount account = findAccount(accountNumber);
if (account == null) {
System.out.println("账户不存在!");
return;
}
System.out.print("请输入取款金额: ");
double amount = scanner.nextDouble();
scanner.nextLine(); // 消耗换行符
account.withdraw(amount);
}
private static void checkBalance() {
System.out.print("请输入账户号: ");
String accountNumber = scanner.nextLine();
BankAccount account = findAccount(accountNumber);
if (account == null) {
System.out.println("账户不存在!");
return;
}
account.displayInfo();
}
private static void displayAllAccounts() {
if (accounts.isEmpty()) {
System.out.println("暂无账户信息!");
return;
}
System.out.println("\n=== 所有账户信息 ===");
for (BankAccount account : accounts) {
account.displayInfo();
System.out.println("-------------------");
}
}
}
练习建议
- 独立完成:先尝试自己编写代码,不要直接查看答案
- 逐步调试:遇到问题时,使用调试工具逐步执行代码
- 扩展练习:在完成基础功能后,尝试添加新功能或优化代码
- 代码重构:思考如何让代码更简洁、可读性更好
- 错误处理:为程序添加更完善的输入验证和错误处理
通过完成这些练习题,你将巩固Java基础语法,并培养解决实际问题的能力。每道题都涵盖了多个核心知识点,建议反复练习直到熟练掌握。
更多推荐

所有评论(0)