【Java】2026 Java学习路线:语言根基(二)
【Java】流程控制、数组、字符串—— 语言根基(二)
Java基础必学知识点 之 语言根基(二)
一、流程控制
代码默认是 从上到下逐行执行 的,但实际开发中我们需要判断、循环、跳转,这就需要 流程控制语句 。它主要分为三大类: 顺序结构、分支结构、循环结构 。
1. 顺序结构(默认)
最基础的执行方式,代码按照书写顺序一行一行跑,没有任何跳转。
public class OrderDemo {
public static void main(String[] args) {
System.out.println("第一步:执行");
System.out.println("第二步:执行");
System.out.println("第三步:执行");
}
}
2. 分支结构:做选择
根据条件判断, 只执行符合条件的代码 ,常用if、if-else、switch。
(1)if 单分支
满足条件就执行,不满足就跳过。
语法:
if (条件表达式) {
满足条件时执行的代码;
}
示例:判断年龄是否成年。
int age = 20;
if (age >= 18) {
System.out.println("已成年");
}
(2)if-else 双分支
二选一,满足条件执行if,不满足执行else。
示例:判断奇偶数。
int num = 7;
if (num % 2 == 0) {
System.out.println("偶数");
} else {
System.out.println("奇数");
}
(3)if-else if-else 多分支
多个条件判断,按顺序匹配,匹配到一个就执行对应代码。
示例:成绩评级。
int score = 85;
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 70) {
System.out.println("良好");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
(4)switch 分支
switch 适合 固定值匹配(支持:byte/short/int/char、其包装类、String、枚举),不支持 long、float、double、boolean,比多分支 if 更简洁。
语法:
switch (变量) {
case 值1:
执行代码;
break; // 跳出switch,必须写!否则会穿透
case 值2:
执行代码;
break;
default: // 所有case都不匹配时执行
执行代码;
}
示例:判断星期。
int week = 3;
switch (week) {
case 1:
System.out.println("周一");
break;
case 2:
System.out.println("周二");
break;
case 3:
System.out.println("周三");
break;
default:
System.out.println("输入错误");
}
注意 :switch的case必须加
break,否则会发生 case穿透 (继续执行下一个case代码)。
3. 循环结构:重复执行代码
需要重复做某件事时用循环,Java有三种循环:for、while、do-while。
(1)for 循环(最常用)
适合 已知循环次数 的场景,语法简洁。
语法:
for (初始化变量; 条件判断; 更新变量) {
循环体;
}
示例:打印1~10。
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
(2)while 循环
适合未知循环次数,先判断条件,再执行循环。
语法:
while (条件) {
循环体;
更新变量;
}
示例:计算1~5的和。
int sum = 0;
int i = 1;
while (i <= 5) {
sum += i;
i++;
}
System.out.println(sum); // 输出15
(3)do-while 循环
先执行一次循环体,再判断条件,至少执行一次。
示例:
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 3);
4. 循环跳转:break 和 continue
-
break:直接结束整个循环/switch。 -
continue:跳过当前一次循环,继续下一次。
示例:
// break:打印到3就停止
for (int i = 1; i <= 5; i++) {
if (i == 4) break;
System.out.println(i); // 输出1、2、3
}
// continue:跳过4,打印其他数字
for (int i = 1; i <= 5; i++) {
if (i == 4) continue;
System.out.println(i); // 输出1、2、3、5
}
二、数组:批量存储同类型数据
当你需要存 多个相同类型的数据 (比如全班同学的成绩、一组数字),用变量太麻烦,数组就是专门解决这个问题的!
1. 数组核心概念
- 数组是 引用数据类型 ,存的是 同类型数据的集合 。
- 数组 长度固定 ,一旦创建不能修改。
- 数组有 索引(下标) ,从 0 开始(第一个元素是索引0,第二个是1,以此类推)。
2. 数组的定义方式
方式1:静态初始化(直接赋值)
// 格式:数据类型[] 数组名 = {元素1, 元素2, ...};
int[] scores = {90, 85, 95, 80};
String[] names = {"张三", "李四", "王五"};
方式2:动态初始化(指定长度,后赋值)
动态初始化时,数组元素会赋默认值:int → 0,double → 0.0,boolean → false,引用类型(如 String)→ null
// 格式:数据类型[] 数组名 = new 数据类型[长度];
int[] arr = new int[3]; // 创建长度为3的int数组,默认值0
// 赋值
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
3. 数组的使用
(1)访问元素:通过索引
int[] arr = {10, 20, 30};
System.out.println(arr[0]); // 输出10(第一个元素)
System.out.println(arr[2]); // 输出30(第三个元素)
(2)获取数组长度:数组名.length
int[] arr = {10, 20, 30};
System.out.println(arr.length); // 输出3
(3)遍历数组(循环打印所有元素)
for循环遍历 (最常用):
int[] arr = {10, 20, 30};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
增强for循环 (简化遍历,不用索引):
for (int num : arr) {
System.out.println(num);
}
4. 数组常见问题
- 索引越界异常 :访问了不存在的索引(如数组长度3,访问arr[3])。
- 空指针异常 :数组没有初始化就使用。
三、字符串:最常用的文本处理
字符串就是一串字符,用""包裹,Java中用String类表示,是开发中用得最多的类型!
1. 字符串的定义
方式1:直接赋值(推荐)
String str = "Hello Java";
方式2:通过new创建
String str = new String("Hello Java");
2. 字符串核心常用方法(必背!)
字符串方法超多,初学者先掌握这些高频方法,直接看示例就能用:
| 方法 | 作用 | 代码示例 |
|---|---|---|
length() |
获取字符串长度 | "abc".length() → 3 |
charAt(int index) |
获取指定索引的字符 | "abc".charAt(1) → ‘b’ |
equals(String) |
判断字符串内容是否相等(必须用这个,不用==) | "abc".equals("abc") → true |
toLowerCase() |
转小写 | "ABC".toLowerCase() → “abc” |
toUpperCase() |
转大写 | "abc".toUpperCase() → “ABC” |
contains(String) |
判断是否包含指定字符串 | "hello".contains("he") → true |
replace(old, new) |
替换字符串 | "abc".replace("a", "x") → “xbc” |
split(String) |
分割字符串为数组 | "a,b,c".split(",") → [“a”,“b”,“c”] |
trim() |
去除首尾空格 | " abc ".trim() → “abc” |
3. 字符串重点注意事项
-
字符串比较必须用
equals(),不能用==。==:比较的是内存地址。equals():比较的是真实内容。
String s1 = "abc"; String s2 = new String("abc"); System.out.println(s1 == s2); // false(地址不同) System.out.println(s1.equals(s2)); // true(内容相同) -
字符串是不可变的。
String 对象是不可变的,底层(Java 8)用 final char [] 存储,任何修改操作(replace、substring 等)都不会改变原字符串,只会返回一个全新的字符串。
Java 9 之后,底层改为了 final byte[](加上一个编码标记 coder)
4. 字符串遍历示例
String str = "Java";
// 遍历每个字符
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
System.out.println(c);
}
总结
这篇博客完整学完了Java入门三大核心:
- 流程控制:用if/switch做选择,用for/while做循环,控制代码执行逻辑;
- 数组:批量存储同类型数据,通过索引访问,固定长度;
- 字符串:文本处理,核心是
equals()比较、遍历、常用方法。
更多推荐




所有评论(0)