Java 核心语法:从变量到流程控制
(专为 0~1 基础学习者打造,2026 年最实用、最清晰的入门版)
下面内容按实际学习顺序组织,从最基础的概念开始,一步步带你建立完整的“语法骨架”。建议边看边在 IDE(推荐 IntelliJ IDEA Community 或 VS Code + Extension)里敲代码验证。
1. 第一个程序:Hello World 与 main 方法
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World! 2026");
}
}
必须记住的几句话:
- 类名与文件名必须完全一致(区分大小写)
public static void main(String[] args)是程序入口System.out.println()是最常用的输出方式(自动换行)System.out.print()不换行
2. 变量与数据类型(最核心的基础)
Java 是强类型、静态类型语言,变量必须先声明类型。
| 类型分类 | 关键字 | 占用字节 | 默认值 | 取值范围示例 | 备注 |
|---|---|---|---|---|---|
| 整型 | byte | 1 | 0 | -128 ~ 127 | 极少单独使用 |
| short | 2 | 0 | -32768 ~ 32767 | ||
| int(最常用) | 4 | 0 | -2^31 ~ 2^31-1 ≈ ±21亿 | 默认整数类型 | |
| long | 8 | 0L | -2^63 ~ 2^63-1 | 字面量要加 L 或 l | |
| 浮点型 | float | 4 | 0.0f | ±3.4E38(有效6~7位) | 字面量要加 f 或 F |
| double(最常用) | 8 | 0.0 | ±1.8E308(有效15~16位) | 默认小数类型 | |
| 字符型 | char | 2 | ” | 0 ~ 65535(Unicode) | 单引号,只能一个字符 |
| 布尔型 | boolean | ~1 bit | false | true / false | 不能转成 0/1 |
| 引用类型 | String(最常用) | — | null | — | 字符串,属于类(不是基本类型) |
| 数组、自定义类等 | — | null | — | 所有非基本类型都是引用类型 |
常见写法对比(2026 年最推荐风格)
int age = 25;
long population = 1_400_000_000L; // 下划线分隔增强可读性(Java 7+)
double price = 19.99;
float pi = 3.14159f;
char gender = '男';
boolean isVip = true;
String name = "重阳";
3. 变量的作用域与生命周期
| 位置 | 名称 | 作用域 | 生命周期 | 默认值 |
|---|---|---|---|---|
| 方法内部 | 局部变量 | 从声明到 } 结束 | 方法调用期间 | 无(必须初始化) |
| 类中、方法外 | 成员变量(字段) | 整个类 | 对象存在期间 | 有默认值 |
| 用 static 修饰 | 静态变量(类变量) | 整个类 | 类加载 ~ 卸载 | 有默认值 |
public class ScopeDemo {
static int classVar = 100; // 静态变量
int instanceVar = 200; // 成员变量(实例变量)
public void method() {
int localVar = 300; // 局部变量,必须初始化
System.out.println(classVar + instanceVar + localVar);
}
}
4. 类型转换(自动 & 强制)
自动转换(从小 → 大):byte → short → int → long → float → double
int a = 10;
double b = a; // 自动,10.0
强制转换(可能丢失精度):
double pi = 3.14159;
int n = (int) pi; // 3(直接截断,不是四舍五入)
特别注意:
byte b1 = 10;
byte b2 = 20;
// byte b3 = b1 + b2; // 错!int + int = int
byte b3 = (byte)(b1 + b2); // 正确,但可能溢出
5. 运算符(优先级口诀:先乘除后加减,括号最高)
| 类别 | 符号 | 说明 | 注意点 |
|---|---|---|---|
| 算术 | + – * / % | 取模(余数) | 整数 / 整数 = 整数 |
| 自增/自减 | ++ — | 前置/后置区别 | a++ 先用后加,++a 先加后用 |
| 赋值 | = += -= *= /= %= | 复合赋值 | a += 5 等价 a = a + 5 |
| 关系 | > >= < <= == != | 结果一定是 boolean | == 比较值(引用类型比地址) |
| 逻辑 | && || ! | 短路与、短路或、非 | && 和 || 有短路特性 |
| 三元 | 条件 ? 表达式1 : 表达式2 | 简洁 if-else | 最常用替代简单分支 |
| 位运算 | & | ^ ~ << >> >>> | 位与、或、异或、取反、移位 | 性能优化、权限控制常用 |
经典面试题:
int x = 5;
int y = x++ + ++x; // 5 + 7 = 12,x 最后是7
6. 流程控制(三大结构)
6.1 顺序结构(默认)
6.2 选择结构
if-else
if (age >= 18) {
System.out.println("成年人");
} else if (age >= 13) {
System.out.println("青少年");
} else {
System.out.println("儿童");
}
三元运算符(简洁版 if-else)
String status = (score >= 60) ? "及格" : "不及格";
switch(Java 17+ 增强版)
String grade = "A";
switch (grade) {
case "A" -> System.out.println("优秀");
case "B" -> System.out.println("良好");
case "C", "D" -> System.out.println("及格"); // Java 14+ 支持多个 case
default -> System.out.println("不及格");
}
6.3 循环结构(三种)
for(最常用,适合已知次数)
for (int i = 1; i <= 100; i++) {
System.out.println(i);
}
// 增强 for(遍历数组/集合)
int[] scores = {85, 92, 78};
for (int score : scores) {
System.out.println(score);
}
while(适合未知次数)
int count = 0;
while (count < 5) {
System.out.println("第 " + (++count) + " 次");
}
do-while(至少执行一次)
int input;
do {
System.out.print("请输入正整数(输入0结束):");
input = scanner.nextInt();
} while (input != 0);
break & continue & 带标签的用法
outer: for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
if (j == 3) continue outer; // 跳出双重循环
System.out.println(i + "," + j);
}
}
快速自测清单(建议全部敲一遍)
- 声明各种基本类型变量并输出
- 用三元运算符判断成绩等级(90+优秀,80+良好,60+及格,其余不及格)
- 用 for 打印 1~100 内所有 3 的倍数
- 用 while 实现猜数字游戏(1~100)
- 用 switch 处理菜单选择(1.登录 2.注册 3.退出)
- 写一个计算 1+2+…+100 的程序(三种循环各写一次)
这些敲完后,你就真正掌握了 Java 最核心的“语法骨架”。
想继续深入哪个部分?
- 数组 & 集合初步
- 方法(函数)的定义与调用
- 调试技巧(断点、单步)
- Scanner 键盘输入完整用法
- 还是直接进入面向对象(类与对象)?
告诉我你的下一步目标~