一份清晰的 Java 语法汇总就像是编程时的地图,能帮我们快速定位和理解核心概念。下面我梳理了一份涵盖 Java 核心语法的速查指南,并加入了一些关键提示,希望能协助你巩固基础和高效查阅。
一、程序结构与基础概念
一个 Java 程序的基本骨架由类和 main 方法构成,它是程序的入口点
。
public class HelloWorld { // 类名一般与文件名一致
public static void main(String[] args) { // 程序入口
System.out.println("Hello, World!"); // 输出语句
}
}
核心元素:
- 标识符:为类、变量、方法等起的名字。规则:以字母、下划线_或美元符号$开头,后跟字母、数字、下划线或$。Java 区分大小写
- 。
- 关键字:Java 语言定义的具有特殊含义的单词,如 class, public, static, void, if, for 等,不能用作标识符
- 。
- 注释:用于解释代码,不会被编译执行
- 。
- 单行注释:// 注释内容
- 多行注释:/* 注释内容 */
- 文档注释:/** 注释内容 */(用于生成 API 文档)
二、数据类型与变量
Java 是静态类型语言,变量必须先声明类型后使用。数据类型分为两大类:
1. 基本数据类型
共 8 种,直接存储值
。
|
类型 |
关键字 |
大小/范围 |
示例 |
|
整型 |
byte |
8位,-128 ~ 127 |
byte b = 100; |
|
short |
16位,-32,768 ~ 32,767 |
short s = 20000; |
|
|
int |
32位,约 ±21亿 |
int i = 1000000; |
|
|
long |
64位,范围很大 |
long l = 10000000000L; (注意 L 后缀) |
|
|
浮点型 |
float |
32位单精度 |
float f = 3.14f; (注意 f 后缀) |
|
double |
64位双精度 |
double d = 3.14159; |
|
|
字符型 |
char |
16位 Unicode 字符 |
char c = ‘A’; |
|
布尔型 |
boolean |
true 或 false |
boolean isOk = true; |
2. 引用数据类型
存储的是对象的地址(引用)
- 类:如 String。
- 接口
- 数组
变量与常量
- 变量声明与赋值:数据类型 变量名 [= 初始值];,例如 int age = 25;
- 常量:使用 final 关键字修饰,值一旦设定便不可更改,一般全大写
- ,例如 final double PI = 3.14159;。
三、运算符
用于进行数学或逻辑运算
|
类别 |
运算符 |
示例 |
|
算术运算符 |
+, -, *, /, % (取模), ++ (自增), — (自减) |
int result = 10 % 3; // result = 1 |
|
关系运算符 |
>, <, >=, <=, ==, != |
boolean isEqual = (10 == 10); // true |
|
逻辑运算符 |
&& (与), ` |
|
|
赋值运算符 |
=, +=, -=, *=, /= 等 |
a += 5; // 等价于 a = a + 5 |
|
条件运算符(三元) |
条件 ? 表达式1 : 表达式2 |
String result = score >= 60 ? “及格” : “不及格”; |
运算符优先级:不确定时,使用小括号 () 来明确运算顺序是最佳实践
四、流程控制
1. 条件语句
// if-else
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
// switch-case (支持字符串、枚举等)
switch (dayOfWeek) {
case "Monday":
System.out.println("周一");
break; // 防止"穿透"
case "Sunday":
System.out.println("周日");
break;
default:
System.out.println("其他日子");
}
2. 循环语句
// for 循环
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
// while 循环
while (condition) {
// 循环体
}
// do-while 循环 (至少执行一次)
do {
// 循环体
} while (condition);
// 增强 for 循环 (用于遍历数组或集合)
int[] numbers = {1, 2, 3};
for (int num : numbers) {
System.out.println(num);
}
3. 跳转语句
- break:跳出当前循环或 switch 语句。
- continue:跳过本次循环的剩余代码,直接进入下一次循环。
- return:从当前方法返回,并可带回一个值
五、数组
数组是存储固定大小、一样类型元素的顺序集合
// 声明和初始化
int[] arr1 = new int[5]; // 创建一个长度为5的int数组,初始值均为0
String[] arr2 = {"Apple", "Banana", "Orange"}; // 声明并直接初始化
// 访问元素 (索引从0开始)
arr1[0] = 10; // 为第一个元素赋值
System.out.println(arr2[1]); // 输出 "Banana"
// 获取数组长度
int len = arr2.length;
六、面向对象编程 (OOP)
1. 类与对象
类是蓝图,对象是根据蓝图创建的具体实例。
// 定义类
public class Person {
// 属性(成员变量)
private String name; // 私有属性,体现封装性
public int age;
// 构造方法(用于创建对象时初始化)
public Person(String name, int age) {
this.name = name; // `this` 指代当前对象
this.age = age;
}
// 方法(行为)
public void sayHello() {
System.out.println("Hello, I'm " + name);
}
// Getter 和 Setter 方法(提供对私有属性的安全访问)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
// 创建对象并使用
Person person1 = new Person("Alice", 25); // 使用 new 关键字和构造方法创建对象
person1.sayHello(); // 调用方法
2. 三大特性
- 封装:将数据(属性)和行为(方法)捆绑在一起,并隐藏内部实现细节(一般通过 private 修饰属性,提供公共的 getter/setter 方法)
- 继承:子类(派生类)继承父类(基类)的属性和方法,实现代码复用。使用 extends 关键字
- 例如 class Student extends Person { … }。
- 多态:同一操作作用于不同对象,可以有不同的解释。一般通过方法重写(Override)和父类引用指向子类对象来实现
- ,例如 Animal myDog = new Dog(); myDog.makeSound();,实际调用的是 Dog 类的 makeSound 方法。
3. 修饰符
|
修饰符 |
类 |
成员变量/方法 |
说明 |
|
public |
✓ |
✓ |
公开访问,任何其他类都可访问 |
|
private |
✓ |
私有访问,仅在本类内部可见 |
|
|
protected |
✓ |
受保护访问,本类、同包、不同包的子类可见 |
|
|
default (不加修饰符) |
✓ |
✓ |
包级私有,本类和同包下的类可见 |
|
static |
✓ |
静态的,属于类而非对象,可通过类名直接访问 |
|
|
final |
✓ |
✓ |
最终的。修饰类:不可继承;修饰方法:不可重写;修饰变量:成为常量 |
七、异常处理
使用 try-catch-finally 块来捕获和处理运行时可能发生的错误(异常),保证程序的健壮性
try {
// 可能抛出异常的代码
int result = 10 / 0; // 这里会抛出 ArithmeticException
} catch (ArithmeticException e) {
// 捕获并处理特定的异常
System.out.println("除数不能为零: " + e.getMessage());
} catch (Exception e) {
// 捕获其他所有异常(更广泛的异常)
System.out.println("发生了其他错误");
} finally {
// 无论是否发生异常,都会执行的代码块(常用于释放资源,如关闭文件流)
System.out.println("这段代码总是会执行");
}
// 使用 throws 声明方法可能抛出的异常
public void readFile() throws IOException {
// ... 文件操作代码
}
八、常用类库
Java 提供了丰富的标准类库,这里列举两个最常用的:
1. String 类
字符串是不可变对象
String str1 = "Hello";
String str2 = "Java";
String str3 = str1 + " " + str2; // 字符串拼接
System.out.println(str3.length()); // 获取长度
System.out.println(str3.substring(0, 5)); // 截取子串 "Hello"
System.out.println(str3.equals("Hello Java")); // 比较内容是否相等(不要用 ==)
2. 集合框架
用于存储和操作数量不定的对象组
|
接口 |
常用实现类 |
特点 |
|
List (有序, 可重复) |
ArrayList |
基于动态数组,随机访问快 |
|
LinkedList |
基于双向链表,插入删除快 |
|
|
Set (无序, 唯一) |
HashSet |
基于哈希表,查找最快 |
|
TreeSet |
基于红黑树,元素有序 |
|
|
Map (键值对) |
HashMap |
基于哈希表,键唯一 |
|
TreeMap |
基于红黑树,键有序 |
import java.util.ArrayList;
import java.util.HashMap;
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
System.out.println(list.get(0)); // 输出 "Apple"
HashMap<String, Integer> map = new HashMap<>();
map.put("Alice", 25);
map.put("Bob", 30);
System.out.println(map.get("Alice")); // 输出 25
学习提议
- 代码实践:每个语法点配合20+行代码验证(GitHub托管项目)
- 源码阅读:分析ArrayList、HashMap等核心类的实现
- 工具使用:掌握IDE调试技巧(断点、变量监视)
- 规范遵循:命名采用驼峰式(camelCase),类名首字母大写
通过系统掌握上述语法体系,可构建完整的Java知识框架。提议结合项目实战(如电商系统、控制台工具)深化理解。
希望这份汇总能成为你 Java 学习路上的得力助手!如果你对某个特定知识点特别感兴趣,我们可以再展开深入聊聊。


