版本:基于 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 中没有实际用途,但被保留作为关键字,不能用作标识符。


深度理解:如何选择关键字?

  1. 安全性优先:默认使用 privatefinal。如果一个类不打算被继承,请标记为 finalsealed

  2. 性能与并发:在多线程环境中,理解 volatilesynchronized 的区别至关重要。

  3. 代码简洁:在局部变量中大胆使用 var,在数据建模时优先考虑 record


本章小结

第十四篇我们系统梳理了:

  1. 访问控制与可见性管理。

  2. 静态与不可变修饰符的深层含义。

  3. 流程控制与异常处理的语法骨架。

  4. 现代 Java (16/17/21) 引入的新一代关键字。

下一篇预告:Java 泛型深度解析 (Type Erasure, Bridge Methods)