版本:基于 Java 17 & Java 21 LTS
关键字(Keywords)是 Java 语言预定义的、具有特殊含义的标识符。它们是构建 Java 程序的基石。本篇将对 Java 的核心关键字进行分类详解,并结合现代 Java 特性带你深度理解它们的用法。
1. 访问控制关键字
这些关键字决定了类、方法和变量的可见性。
public: 全局可见。
protected: 同包及子类可见。
private: 仅本类可见。
(default): 不写任何关键字时,仅同包可见。
深度理解:封装原则要求我们尽可能使用 private,通过 public 方法暴露有限的操作。
2. 类、方法和变量修饰符
static: 静态修饰符。属于类而非对象。常用于常量定义和工具方法。
final: 不可变修饰符。
修饰变量:值不可改(常量)。
修饰方法:不可被重写。
修饰类:不可被继承(如
String类)。
abstract: 抽象修饰符。用于声明抽象类或抽象方法,强制子类实现。
native: 用于调用本地(C/C++)代码。
transient: 瞬时修饰符。标记的变量不会被序列化。
volatile: 保证多线程环境下的变量可见性和禁止指令重排序。
3. 流程控制关键字
if, else, switch, case, default: 条件分支。
for, while, do: 循环结构。
break, continue, return: 中断或返回执行流。
yield (Java 13+): 在
switch表达式中返回值。
var result = switch (day) {
case 1 -> "Monday";
default -> {
System.out.println("Processing...");
yield "Unknown"; // 使用 yield 返回值
}
};4. 异常处理关键字
try, catch, finally: 基础捕获体系。
throw: 手动抛出异常。
throws: 在方法签名上声明可能抛出的异常。
5. 面向对象核心关键字
class, interface, enum: 定义类、接口、枚举。
extends, implements: 实现继承和接口。
this, super: 指代当前对象或父类对象。
instanceof: 判断对象类型(Java 16+ 支持模式匹配)。
new: 创建对象实例。
6. 现代 Java 新增关键字 (及保留字)
随着 Java 的进化,一些新的关键字或具有特殊含义的标识符被引入:
record (Java 16+): 声明不可变数据载体。
sealed, permits (Java 17+): 定义密封类,控制继承树。
non-sealed (Java 17+): 显式声明密封类的子类可以被继续继承。
var (Java 10+): 局部变量类型推断(属于保留类型名,而非严格意义上的关键字)。
7. 特殊的保留字
goto, const: 虽然在 Java 中没有实际用途,但被保留作为关键字,不能用作标识符。
深度理解:如何选择关键字?
安全性优先:默认使用
private和final。如果一个类不打算被继承,请标记为final或sealed。性能与并发:在多线程环境中,理解
volatile和synchronized的区别至关重要。代码简洁:在局部变量中大胆使用
var,在数据建模时优先考虑record。
本章小结
第十四篇我们系统梳理了:
访问控制与可见性管理。
静态与不可变修饰符的深层含义。
流程控制与异常处理的语法骨架。
现代 Java (16/17/21) 引入的新一代关键字。
下一篇预告:Java 泛型深度解析 (Type Erasure, Bridge Methods)